我想每 60 秒或每行驶 1500 米获取一次位置更新。 显然,LocationManager 允许您设置时间和米的最小值,但 GPSUpdate 不会触发,直到满足时间和距离的最小值。 但我想要的是每 60 秒(无论用户走了多远)和每 1500 米(无论花费多长时间)更新一次 GPS。
我曾尝试使用多个 locationClients 并将 locationRequests 设置为每个条件,但它们无法同时连接。
有什么简单的方法可以做到这一点吗?
最佳答案
抱歉我从来没有回复过,我已经完全忘记了这个问题。
无论我过去的解决方案是什么,都不会是正确的,因为我最近添加了一种更有效的方法来做到这一点。
首先.. 如果您使用的是 FusedLocationAPI 和 GoogleApiClient,请查看我发布的答案 here .
如果您使用的是 LocationManager 类而不是 GoogleApiClient,则解决方案类似。
需要创建两个requestLocationUpdates,一个是Time only,一个是Distance only,未使用的字段设置为0,例如:
locationManager.requestLocationUpdates(bestProvider, 0, UPDATE_MIN_DISTNACE, myBackupLocationDistanceIntervalListener);
locationManager.requestLocationUpdates(bestProvider, UPDATE_TIME_INTERVAL, 0, myBackupLocationTimeIntervalListener);
如果需要,也可以使用 Criteria 来完成:
locationManager.requestLocationUpdates(0, UPDATE_MIN_DISTNACE, gpsCriteria, myBackupLocationDistanceIntervalListener, Looper.getMainLooper());
locationManager.requestLocationUpdates(UPDATE_TIME_INTERVAL, 0, gpsCriteria, myBackupLocationTimeIntervalListener, Looper.getMainLooper());
然后只需定义您的监听器。您可以使用相同或不同的监听器来处理请求的结果。
希望这对您有所帮助。
关于Android - 根据特定的时间量和特定的行进距离获取 GPS 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27506736/