0

假设我使用 Android 融合位置 API 来请求高精度位置报告。例如,

    mLocationRequest = new LocationRequest();
    mLocationRequest.setInterval(FASTEST_UPDATE_INTERVAL*2);
    mLocationRequest.setFastestInterval(FASTEST_UPDATE_INTERVAL);
    mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

    LocationServices.FusedLocationApi
                .requestLocationUpdates(mGoogleApiClient, mLocationRequest, this)

这导致我的位置监听器被调用到每个 FASTEST_UPDATE_INTERVAL。如果我将 FASTEST_UPDATE_INTERVAL 设置为短,我知道 GPS 无线电在位置更新之间不会关闭。我从各种来源知道这一点,例如Fused Location Provider 意外行为https://www.quora.com/Why-does-GPS-use-so-much-more-battery-than-any-other-antenna-or-智能手机中的传感器

我的问题是 FASTEST_UPDATE_INTERVAL 的最小值是多少,它会导致 GPS 无线电在位置更新之间被关闭?

我预计这个问题不会有明确的答案,这将取决于手机硬件、Google Play 版本以及可能的其他硬件和软件因素。尽管如此,一般性的答案会有所帮助。

这个问题很重要,因为我对使用高精度定位但尽量减少电池使用感兴趣。如果可以节省电量,我很乐意增加 FASTEST_UPDATE_INTERVAL。

如果谷歌融合定位服务使用设备的运动检测器(如果存在)在设备静止时进行计算,如果是这样,只需关闭 GPS 无线电直到设备移动,这不是很好。

4

1 回答 1

0

即使您找到了答案,我也不指望它在设备、操作系统版本或 Google Play 版本之间保持不变。如果您绝对不想要 GPS,请不要使用融合提供商。使用来自基本 LocationManager 的网络提供商。

至于使用运动检测器-它们不存在。它有一个加速度计,但对于一个加速度计保持静止并以恒定的 50mph 行驶看起来完全一样(以恒定速度行驶是 0 加速度)。无论如何,这可能不是一个好的优化——锁定多个 GPS 卫星需要几秒钟。如果有人想要准确性,您不想继续打开和关闭它。

于 2016-03-05T04:44:29.723 回答