我正在使用 Android 2.3.1 项目使用 LocationManager.GPS_PROVIDER 获取当前位置。
这是我的代码
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LocationManager locManager = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
LocationListener locListener = new BTILocationListener();
locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locListener);
}
public class BTILocationListener implements LocationListener {
@Override
public void onLocationChanged(Location loc) {
Log.d("BTILocation", "Inside onLocationChanged() ---");
if (loc != null) {
double latitude = loc.getLatitude();
double longitude = loc.getLongitude();
String locationstr = "Latitude = " + latitude + " longitude = " +longitude;
Log.d("BTILocation", locationstr);
}
}
@Override
public void onProviderDisabled(String provider) {
Toast.makeText(getApplicationContext(), "GPS Disabled", Toast.LENGTH_SHORT).show();
Log.w("BTILocation", "GPS is Disabled");
}
@Override
public void onProviderEnabled(String provider) {
Toast.makeText(getApplicationContext(), "GPS Enabled", Toast.LENGTH_SHORT).show();
Log.w("BTILocation", "GPS is Enabled");
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
}
我使用的权限集 -
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
我使用开放的 telnet 连接
telnet localhost 5544
geo fix 12 22
我在 logcat 上看到以下错误 -
E/GpsLocationProvider( 75): native_start failed in startNavigating()
onLocationChanged(location loc) 返回的位置对象在 2.3.1 上始终为 null。
相同的代码在 Android 2.1 和 4.0 中运行良好。请帮我解决这个问题,我试过谷歌搜索,但我在任何地方都找不到解决方案。谢谢!我没有与 Android API 级别 7 兼容的 Google API,有人知道如何下载吗?