我正在尝试调试我的应用程序,由于某些原因,当我开始获取当前位置时,我的LocationListener永远得不到更新……我已在清单中添加了正确的权限。下面是我用来测试是否至少调用了一个回调的示例代码片段:
我在三种不同的设备(Galaxy S3,Galaxy Note2,Google Nexus4)上进行了测试,它们都启用了全球定位系统和网络。
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new LocationListener() {
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
MyLog.debug("FOO");
}
@Override
public void onProviderEnabled(String provider) {
MyLog.debug("FOO");
}
@Override
public void onProviderDisabled(String provider) {
MyLog.debug("FOO");
}
@Override
public void onLocationChanged(Location location) {
MyLog.debug("FOO");
}
});发布于 2013-05-17 06:20:49
检查您是否已在清单(ACCESS_COARSE_LOCATION或ACCESS_FINE_LOCATION)中添加了正确的权限。
此外,您不应该指定像LocationManager.GPS_PROVIDER这样的提供商名称,因为用户可能已经在他的设备上禁用了他的gps。LocationManager提供了一个方法getBestProvider(),你应该调用这个方法来获得最好的可用的提供者。
https://stackoverflow.com/questions/16597617
复制相似问题