假设我使用 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 无线电直到设备移动,这不是很好。