【问题标题】:Location client's priority against setInterval,setFastestInterval and setSmallestDisplacement?定位客户端对 setInterval、setFastestInterval 和 setSmallestDisplacement 的优先级?
【发布时间】:2014-09-13 03:11:53
【问题描述】:
如果
locationClient.setInterval(60*1000);
locationClient.setSmallesDisplacement(10);
locationClient.setFastestInterval(1000);
是给定的,那么什么时候会调用更新?如果用户在 60 秒内移动了 10 米,是否会调用位置更新?或者如果用户在 60 秒内没有移动任何距离,是否可以获取更新?如果一次性使用所有属性,哪个优先?
我在我的应用程序中使用了所有这些。但是,它只有在位移为 1mt 且间隔为 30secs 时才有效。当位移增加到 20 米并保持间隔不变时,得到了更奇怪的结果。
【问题讨论】:
标签:
android
google-play-services
fusedlocationproviderapi
【解决方案1】:
带有10m 位移和60 sec interval 并且没有fastestInterval 值。 Google Play 定位服务将尝试每隔60 sec 获取位置,查看是否为 10m,如果是,它将调用 onLocationChanged,否则将丢弃该值。
现在使用fastestInterval = 1,如果它在1 sec 中具有位置值并且如果位移大于10m,那么您将在onLocationChanged 中接收位置
【解决方案2】:
我的情况跟你一样。我不知道会先调用 Interval 以确定位移,否则位移会首先触发。
如果用户在您的情况下移动 5 米,然后返回原始位置 5 米,则 locationcleint 将更新新位置,否则不会因为用户停留在同一位置但移动了 10 米