为什么“ PRIORITY_BALANCED_POWER_ACCURACY”比“ PRIORITY_HIGH_ACCURACY”消耗更多的电池?

Vis*_*hnu 6 gps android

在相同情况下,我们将仅连接WiFi的设备每10分钟请求一次定位所需的电池电量作为基准

  • 恢复出厂设置
  • 相同的启动电池电量
  • 没有安装额外的应用

优先级首先设置为PRIORITY_BALANCED_POWER_ACCURACY,然后设置为PRIORITY_HIGH_ACCURACY

令人惊讶的是,前者用尽了同样的电量,甚至没有更多。这是电池使用情况的图表:

有人可以解释一下这种行为吗?

Md *_*ury 0

PRIORITY_HIGH_ACCURACY更有可能使用 GPS,而PRIORITY_BALANCED_POWER_ACCURACY更有可能使用 WIFI 和蜂窝塔定位。

  • PRIORITY_BALANCED_POWER_ACCURACY(~100m“块”精度)
  • PRIORITY_HIGH_ACCURACY(尽可能准确,但会牺牲电池寿命)

    使用setInterval(long)setFastestInterval(long)来节省电池寿命。

例子:

private static final long INTERVAL = 60 * 1000;
private static final long FASTEST_INTERVAL = 5 * 1000;
private static final long DISPLACEMENT = 100;

private LocationRequest createLocationRequest(){
        LocationRequest mLocationRequest = new LocationRequest();
        mLocationRequest.setInterval(INTERVAL);
        mLocationRequest.setFastestInterval(FASTEST_INTERVAL);
        mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
        mLocationRequest.setSmallestDisplacement(DISPLACEMENT);
        return mLocationRequest;
    }
Run Code Online (Sandbox Code Playgroud)

谷歌在这里描述了这个LocationRequest类:http://developer.android.com/reference/com/google/android/gms/location/LocationRequest.html