我已为我的Android应用设置了Google的Fused Location API,并且在将优先级设置为PRIORITY_HIGH_ACCURACY时,我能够接收位置更新(因为我的更新间隔设置为60000,每分钟gps坐标),但是未成功使用" PRIORITY_BALANCED_POWER_ACCURACY"
时我的问题如下: 何时/如何PRIORITY_BALANCED_POWER_ACCURACY实际提供更新的位置? 显然它根本没有使用gps,所以onLocationChanged()在跳转到不同的wifi网络/手机信号塔时会被调用吗?
我问,因为我需要一种测试方法,不确定模拟器是否可以执行此操作。我有一个物理Android手机,但它只有wifi。
在使用PRIORITY_HIGH_ACCURACY(setInterval()/ setFastestInterval或setSmallestDisplacement())时会调用TLDR onLocationChanged(),但是在使用PRIORITY_BALANCED_POWER_ACCURACY时会调用onLocationChanged()吗?
我非常感谢帮助,谢谢!
答案 0 :(得分:4)
PRIORITY_BALANCED_POWER_ACCURACY
何时/如何实际更新 地点?显然,它根本不使用GPS,所以也是如此 当跳到不同的wifi时,onLocationChanged()被调用 网络/手机信号塔?
答案:低功耗影响。这些应用程序应考虑PRIORITY_BALANCED_POWER_ACCURACY结合更快的setFastestInterval(long)
(例如1分钟)和更慢的setInterval(long)
(例如60分钟)。他们只会为setInterval(long)
设置的时间间隔分配电源责任,但仍可以以高达setFastestInterval(long)
的速率接收其他应用程序触发的位置。这种请求样式适用于许多位置感知应用程序,包括后台使用。如果您在收到更新后执行重量级工作(例如使用网络),请务必小心setFastestInterval(long)
。
但是在使用时何时调用
onLocationChanged()
PRIORITY_BALANCED_POWER_ACCURACY
?
答案: onLocationChanged()
会根据您的setInterval() & setFastestInterval().
修改:
PRIORITY_BALANCED_POWER_ACCURACY&类型之间的区别PRIORITY_HIGH_ACCURACY
使用优先级常量,例如PRIORITY_HIGH_ACCURACY。没有其他价值被接受。
请求的优先级强烈暗示要使用位置源的LocationClient。例如,PRIORITY_HIGH_ACCURACY更可能使用GPS,PRIORITY_BALANCED_POWER_ACCURACY更可能使用WIFI&单元塔定位,但它还取决于许多其他因素(例如可用的源),并且取决于实现。
我需要一种测试方法,不确定模拟器是否可以执行此操作。
答案:您可以使用发送假位置在模拟器中测试此方案。