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 没有更新吗?任何帮助将不胜感激。
(P.S. 不,我通常不使用“1, 1”作为我的时间/距离参数;我只是在调试时更改了它。)
编辑:我忘了提及,是的,isProviderEnabled() 返回 true。