Подтвердить что ты не робот

Определите близость телефона Android к известной точке при сохранении мощности

Я пытаюсь определить, имеет ли пользователь Android близость к списку заданных местоположений. Я хотел бы сделать это с наименьшим количеством утечки на батарее телефона. Два механизма, которые я вижу для этого: оповещения о близости и запрашивающее местоположение обновления. Каковы плюсы и минусы двух методов? Будет ли меньше влиять на батарею, чем на другую? В любом случае я бы предположил, что конкретный менеджер местоположений использовал бы некоторое влияние на использование энергии (существующий ответ).

4b9b3361

Ответ 1

Обновления местоположений, вероятно, менее дороги, чем предупреждения о близости с точки зрения использования аккумулятора.

Так как addProximityAlert использует как NETWORK_PROVIDER, так и GPS_PROVIDER, вы теряете возможность выбирать, какой поставщик вы хотите использовать. Кроме того, в то время как документация предполагает, что он ограничивает проверку близости один раз каждые четыре минуты, когда экран выключен, я не могу найти код для поддержки такой функциональности, и я могу найти по существу вызов requestLocationUpdates с минимальным интервалом времени в 1000 мс. Поскольку рекомендуется, чтобы фоновые службы использовали значения более 60000 мс, я подозреваю, что было бы дешевле звонить requestLocationUpdates directy с большим минимальным интервалом времени и NETWORK_PROVIDER.