当我在手机上使用LocationManager时,对于几乎所有Nexus 5测试设备,LocationManager每分钟检测一次相同的位置(我每隔60秒听一次该位置)。要清楚我实际使用的代码:
mLocationManager.requestLocationUpdates(60*1000,
0,
criteria),
mLocationUpdateListener, Looper.getMainLooper());
标准是从服务器设置的,只定义了所需的准确度( Criteria.ACCURACY_COARSE 或 Criteria.ACCURACY_FINE )。
因此,对于我的其他测试设备(Nexus 4和Samsung S3),我对位置管理器没有任何问题。它总是每60秒提供一个新位置。但是Nexus 5设备似乎在某个时刻缓存了这个位置,所以我向服务器发送了5次完全相同的位置,即使我已经离那个位置只有几百米了。
有没有人知道可能是什么问题?如果您有兴趣,我还可以附加mLocationUpdateListener的代码,但它只是将位置发送到服务器。
编辑:始终在后台服务中获取位置。我可以通过在前台打开谷歌地图来解决这个问题。但当然,这不能解决我的问题。
编辑解决方案:似乎Play服务无法在所有6台Nexus 5测试设备上运行。重新启动所有设备后,我无法重现那种奇怪的行为......
编辑2 :我再次偶然发现这种行为,即使重新启动手机,它也会一直显现......
答案 0 :(得分:0)
尝试这个
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mLocationUpdateListener);