我正在使用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)中返回的location对象在2.3.1上始终为null。
相同的代码在Android 2.1和4.0中运行良好。请帮我解决这个问题,我试过谷歌搜索,但我无法在任何地方找到解决方案。谢谢!我没有与Android API 7级兼容的Google API,有谁知道我可以下载它?
答案 0 :(得分:0)
似乎这是平台2.3的已知问题我使用android SDK管理器下载了针对平台2.2和2.1的Google API。只需检查过时的复选框即可下载所需的包。
答案 1 :(得分:0)
我在API级别17中遇到了与4.4.2相同的错误。但这是零星的,并不是很清楚是什么解决了这个问题。我做了重启模拟器,系统所有常见的东西,没有任何帮助。
但我打开了另一个模拟器并修复了它们。