LocationManager locationManager = (LocationManager)getApp().getSystemService(Context.LOCATION_SERVICE); //getApp() returns my Application object
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER , 1, 1, this);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1, 1, this);
这就是我用来收听的代码。启用 GPS 后,一切正常。但是,如果我禁用 GPS 并依赖网络位置,它会给我带来陈旧的结果——在这种情况下,是两天前的结果。我无法让它更新。调用 getLastKnownLocation 返回相同的陈旧结果。
谷歌地图更新很好,所以我知道这不是硬件/系统配置问题。
我用谷歌搜索,发现一些人有类似的问题,但没有答案。我尝试将我的项目定位到 API 级别 8 (2.2) 和 15 (4.0.3)。结果相同。我的手机正在运行 ICS。
我还尝试删除对 GPS_PROVIDER 的请求,以及在 getAllProviders() 中包含对所有内容的请求。同样的交易。
知道为什么 NETWORK_PROVIDER 没有更新吗?任何帮助将不胜感激。
(PS 不,我通常不使用“1, 1”作为时间/距离参数;我只是在调试时更改了它。)
编辑:我忘了提到是的,isProviderEnabled() 返回 true。