2015-06-05 2 views
1

Я новичок в Android и разрабатываю фоновое обслуживание, которое будет отслеживать, находится ли человек внутри или за пределами определенного радиуса области (фиксированные координаты lat/long).Android получает уведомление, когда человек входит или выходит из региона

Аккумулятор является критическим, и мне не нужно фактическое местоположение (грубое место). Это нормально, если событие доставлено через несколько минут после фактического входа/выхода, поскольку мне нужно только одно уведомление для входа и одно для выхода

Я не хочу, чтобы диспетчер аварийных сигналов запускал каждые 10 минут, чтобы проверить текущее местоположение, поскольку это будет сливать батарею. Есть ли способ достичь этого при минимальном разряде батареи и, желательно, без необходимости включения GPS (потребляет аккумулятор)?

ответ

0

Это называется Geofencing. На сайте разработчиков находится good article. Но для этого требуется GPS (FINE_LOCATION).

Другое решение: реализовать собственную «фреймворк», подобную Geofence, но используя сетевые данные (COARSE_LOCATION), а не GPS. Да, это требует периодического опроса местоположения. Способ уменьшить расход батареи - это опрос менее часто. Также вы можете использовать location updates listener с низким приоритетом.

+0

Спасибо, Сергей за ваш ответ. Я просматривал [прослушиватель обновлений местоположения] (https://developer.android.com/training/location/receive-location-updates.html). Будет ли обратный вызов местоположения работать в фоновом режиме или мне нужно будет заблокировать бодрствование. Кроме того, похоже, что последнее полезна знать будет служить моей цели, но я не нашел какой-либо документ, когда он обновляется (интервал обновления местоположения)? – user2107373

+0

@ user2107373 Извините, я никогда с этим не работал, поэтому не знаю подробностей. –

Смежные вопросы