Android Geofencing: запуск только в то время как вне геозоны
Я делаю приложение геозоны, которое должно постоянно вызывать уведомления, когда устройство находится за пределами геозоны, а не только при выходе.
Я попытался использовать Geofencing API в учебном примере, приведенном на странице обучения разработчиков Android для Google. Но я получил уведомление только тогда, когда устройство входит, останавливается или выходит.
Согласно тому, что я до сих пор исследовал в SO и Google, в Geofencing API есть только три типа переходов: Enter, Dwell и Exit. И уведомление начинается только тогда, когда устройство входит в геозону, пока оно не выйдет.
Может кто-нибудь помочь мне, как заставить это работать?
1 ответ
Это невозможно таким образом. Это не имеет никакого смысла вне геозоны. Это не случай использования геозоны.
Вы можете попытаться указать более широкий диапазон области, а затем проверить геокоординаты, если они находятся за пределами вашей области, которую вы хотите иметь.
Если вы хотите свой собственный пользовательский триггер выхода, когда вы находитесь за пределами забора. Вы можете написать собственное действие, измерив расстояние ( широта, долгота) между вашим текущим местоположением ( FusedLocationProvider) и местом забора ( широта, долгота).
Вы можете использовать нижеприведенные методы, доступные в Android Location API, чтобы измерить разницу и создать настраиваемый триггер, чтобы указать, что вы находитесь за пределами забора.
Обычно это то, что вам нужно сделать
if[ (разница в местоположении) > (Радиус вашего географического забора) ] -> Пользовательское действие выхода из забора
- distanceTo
- distanceBetween (укажите здесь ваш текущий шир. долгота и широту забора, долготу)