Определить близость телефона Android к известной точке при сохранении мощности - PullRequest
11 голосов
/ 14 июня 2010

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

1 Ответ

7 голосов
/ 14 июня 2010

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

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

...