我在onResume中使用此代码:
final LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10 * 1000, 10, this);
} else {
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10 * 1000, 10, this);
}
并在Activity中实现了LocationListener。正如我在调试器中看到的那样,启用了GPS_PROVIDER。当应用程序正常工作时,我也会看到GPS图标。 GPS已在设置中启用。这两个许可都已设定。但onLocationChanged永远不会被调用。几个星期前,这段代码运作良好。
答案 0 :(得分:2)
您可以在最短时间10秒和最小距离10米的情况下设置更新。检查您是否达到了这些最低限度。尝试将所有条件设置为0并再次检查。
此外,检查GPS更新是否有效 - 例如,使用地图应用程序。如果您的设备在“冷”启动时使用GPS - 您无法在10-20分钟或更长时间内收到更新。
答案 1 :(得分:1)
我建议你
Log.d(...)
检查locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)
和locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)
Log.d(...)
捕获对onProviderDisabled(...)
,onProviderEnabled(...)
和onStatusChanged(...)
的所有来电。