0

当我在手机上使用 LocationManager 时,对于几乎所有 Nexus 5 测试设备,LocationManager 每分钟检测几次相同的位置(我每 60 秒侦听一次位置)。要清楚我实际使用的代码:

    mLocationManager.requestLocationUpdates(60*1000,
            0,
            criteria),
            mLocationUpdateListener, Looper.getMainLooper());

标准是从服务器设置的,仅定义所需的精度(Criteria.ACCURACY_COARSECriteria.ACCURACY_FINE)。

因此,对于我的其他测试设备(Nexus 4 和三星 S3),位置管理器没有问题。它总是每 60 秒提供一个新位置。但是 Nexus 5 设备似乎在某个时间点缓存了该位置,因此我向服务器发送了 5 次完全相同的位置,即使我已经离该位置只有 100 米。

有人知道可能是什么问题吗?如果您有兴趣,我还可以附加 mLocationUpdateListener 的代码,但它只是将位置发送到服务器。

编辑:位置总是在后台服务中获得。我可以通过在前台打开谷歌地图来解决这个问题。但这当然不能解决我的问题。

编辑解决方案:Play Services 似乎无法在所有 6 台 Nexus 5 测试设备上运行。重新启动所有设备后,我再也无法重现那种奇怪的行为了......

编辑2:我再次偶然发现了这种行为,即使我重新启动手机它仍然会出现......

4

1 回答 1

0

try this one

mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mLocationUpdateListener);

于 2014-05-28T12:39:34.187 回答