Я создаю приложение, которое отслеживает местоположение через FusedLocationProviderApi в службе переднего плана.
Когда я создаю LocationRequest с PRIORITY_BALANCED_POWER_ACCURACY и начинаю прослушивать обновления местоположения, к моему удивлению, GPS срабатывает (Местоположение в настройках телефона установлено на «Высокая точность»). Я получаю местоположение почти сразу (полагаю, через источники Wi-Fi / сотовой связи), но, поскольку я нахожусь в помещении, я не могу получить исправление GPS, и он просто продолжает пытаться без конца ...
Несмотря на то, что я не просил PRIORITY_HIGH_ACCURACY, я столкнулся со значительным разрядом батареи и был обвинен в использовании GPS в течение нескольких минут.
- Есть ли способ установить тайм-аут для поиска GPS (обнаружение ситуации в помещении)?
- Можно ли получить приличное местоположение с помощью FusedLocationProviderApi без автоматического запуска GPS или мне нужно вернуться к старому API определения местоположения?
- Должен ли я прибегать к ограничению каждого запроса LocationRequest до пары минут (setExpirationDuration) и создавать новый, чтобы предотвратить разрядку батареи GPS?
[РЕДАКТИРОВАТЬ]: Думаю, я нашел другого виновника. На вкладке карты в приложении я установил setMyLocationEnabled(true), и это, похоже, вызывает вспышку GPS. Поэкспериментирую еще немного и отпишусь о результатах. Тем не менее, меня интересует, как менеджер местоположения решает, что достаточно, когда дело доходит до попытки исправления GPS.
Заранее спасибо!