В настоящее время я работаю над образцом приложения для Android, которое использует геозону для мониторинга местоположения, и мне трудно соблюдать ограничение фонового пробуждения Android Vitals (https://developer.android.com/topic/performance)./vitals/wakeup.html).
Я использую Battery Historian для мониторинга пробуждений, и хотя наши собственные будильники работают со скоростью менее одного будильника в час, com.google.android.location.ALARM_WAKEUP_ACTIVITY_DETECTION и com.google.android.location.ALARM_WAKEUP_LOCATOR срабатывают гораздо чаще. Я экспериментировал, устанавливая задержку отклика геозоны на 5 минут, и тревога WAKEUP_LOCATOR значительно уменьшилась. Тем не менее, будильник ALARM_WAKEUP_ACTIVITY_DETECTION по-прежнему намного превышает ограничение в 10 часов в час.
Мы используем геозоны радиусом 100 м и отслеживаем выходной переход, как рекомендовано здесь. Я также использую большую геозону с радиусом до 2 км, чтобы определить, когда мне нужно перезагрузить геозоны, чтобы не загружать слишком много геозон одновременно.
Последние тесты проводились на Android 7.1 на Galaxy S8, но на других устройствах ситуация обычная. У кого-нибудь есть похожая проблема? Google рекомендует использовать Geofences, особенно в свете ограничений Oreo на запросы фонового определения местоположения, поэтому странно, что инструмент системного мониторинга учитывает так много пробуждений, хотя это рекомендуемый способ их избежать.
Ps: я прочитал ответ Иветты Коломб здесь, и я не использую обновления местоположения, только сервисы Geofence. Должен ли я отказаться от него?
[Изменить] Документацию по геозонам на Android можно посмотреть здесь: https://developer.android.com/training/location/geofencing.html
[Редактировать 2] В трекере Android есть проблема, в которой обсуждается эта ситуация, но нет новой обновления на этом фронте либо
[Редактировать 3]: проблема была назначена в системе отслеживания проблем Google. ~22.08.2018
Спасибо за внимание,