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


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

1 10

1 ответ:

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

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