Предположим, что я использовал API-интерфейс плавного определения местоположения Android, чтобы запросить высокоточные отчеты о местоположении. Например,
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-sensor-in-a-smartphone.
Мой вопрос: каково наименьшее значение FASTEST_UPDATE_INTERVAL, которое приведет к отключению GPS-радио между обновлениями местоположения?
Я предполагаю, что на этот вопрос не будет однозначного ответа, и он будет зависеть от аппаратного обеспечения телефона, версии Google Play и, возможно, других аппаратных и программных факторов. Тем не менее, общий ответ был бы полезен.
Этот вопрос важен, потому что я заинтересован в использовании высокоточного определения местоположения при минимальном использовании батареи. В какой-то степени я рад увеличить FASTEST_UPDATE_INTERVAL, если это сэкономит энергию.
Было бы неплохо, если бы службы определения местоположения Google Fuse использовали детекторы движения устройства (если они существуют), чтобы определять, когда оно было неподвижно, и если да, то просто отключали GPS-радио, пока устройство не двигалось.