2013-06-18 3 views
0

У меня есть приложение, которое будет принимать некоторые (интернет) действия каждый раз, когда пользователь приближается к любому из множества мест (например, предположим, что он уведомляет сервер, когда я рядом с магазином Starbucks, поэтому мои привычки к кофе могут быть проанализированы).Какой самый эффективный аккумулятор для мониторинга близости к нескольким местоположениям в Android?

Какова наиболее эффективная аккумуляторная батарея (но надежная и относительно точная), которая заставляет телефон делать что-то, когда он находится в определенном месте? Мне не нужна идеальная точность местоположения - в пределах 50 м или около того.

В настоящее время я устанавливаю ProximityAlert для каждого местоположения с радиусом 100 м и подниму намерение, которое затем обслуживается Службой, которая работает в фоновом режиме. Услуга также включает в себя будильник, который вызывает загрузку каждые три часа или около того.

Служба сама по себе не теряет сколько-нибудь значительного количества батареи - батарея полностью разряжена «ОС Android». Согласно Android 4.1.2 Battery Monitor, Android OS использует в 3 раза больше процессора, чем телефон без моего приложения, и большую часть времени «бодрствует».

Будет ли изменение его на IntentService иметь значение?

Будет ли уменьшать (или увеличивать) радиус оповещения, иметь значение?

Будет ли преобразование его в Geofence (https://developer.android.com/training/location/geofencing.html) имеет большое значение?

Могу ли я установить его, чтобы использовать более дешевую услугу определения местоположения, если он не думает, что это близко к одному из мест (или это будет делать это автоматически?)

+0

может быть, вы должны попробовать [Geofencing APIs] (http://developer.android.com/google/play-services /location.html) - [ссылки] (http://developer.android.com/reference/com/google/android/gms/location/Geofence.html) – Selvin

+0

Спасибо - добавил это на вопрос –

ответ

2

Я никогда не работал с оповещающими функциями LocationManagers близости, так что я не знаю, сколько они разряжают аккумулятор, но, насколько я знаю, новые сервисы Geofence (https://developer.android.com/training/location/geofencing.html) были специально разработаны в удобной для батареи форме.

+0

Спасибо, я кратко забыл об этом варианте. –

1

БолгарияМеждународные менеджеры по местоположению представляют собой очень сложный способ программирования того, что вам нужно. Google заново изобрести свои провайдеры, чтобы свести их с помощью датчиков. Его последняя и лучшая, использует меньше батареи и делает magic с вашим приложением, удалив все 1000 строк бесполезного кода, которые вам нужно написать между вашими поставщиками gps/network.

Новые api - это LocationClient api's. Смотрите это video и демо для себя.