Android FusedLocationApi何时使用PRIORITY_BALANCED_POWER_ACCURACY

时间:2016-12-30 04:15:50

标签: android gps location

我已为我的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()吗?

我非常感谢帮助,谢谢!

1 个答案:

答案 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&单元塔定位,但它还取决于许多其他因素(例如可用的源),并且取决于实现。

  

我需要一种测试方法,不确定模拟器是否可以执行此操作。

答案:您可以使用发送假位置在模拟器中测试此方案。