Я пытаюсь определить, имеет ли пользователь Android близость к списку заданных местоположений. Я хотел бы сделать это с наименьшим количеством утечки на батарее телефона. Два механизма, которые я вижу для этого: оповещения о близости и запрашивающее местоположение обновления. Каковы плюсы и минусы двух методов? Будет ли меньше влиять на батарею, чем на другую? В любом случае я бы предположил, что конкретный менеджер местоположений использовал бы некоторое влияние на использование энергии (существующий ответ).
Определите близость телефона Android к известной точке при сохранении мощности
Ответ 1
Обновления местоположений, вероятно, менее дороги, чем предупреждения о близости с точки зрения использования аккумулятора.
Так как addProximityAlert
использует как NETWORK_PROVIDER
, так и GPS_PROVIDER
, вы теряете возможность выбирать, какой поставщик вы хотите использовать. Кроме того, в то время как документация предполагает, что он ограничивает проверку близости один раз каждые четыре минуты, когда экран выключен, я не могу найти код для поддержки такой функциональности, и я могу найти по существу вызов requestLocationUpdates
с минимальным интервалом времени в 1000 мс. Поскольку рекомендуется, чтобы фоновые службы использовали значения более 60000 мс, я подозреваю, что было бы дешевле звонить requestLocationUpdates
directy с большим минимальным интервалом времени и NETWORK_PROVIDER
.