Задержка/сбой триггера Android Geofence

Я зарегистрировал геозоны в своем приложении для Android для 5-6 мест.

Событие Geofence, которое я хочу, — это Geofence Dwell с задержкой 10 секунд.

Но при этом событие иногда запускается на некоторых устройствах Android и вообще не запускается на других.

Итак, только для целей тестирования я рассмотрел следующие сценарии:

1) Уменьшил задержку праздношатания до 3 сек. На этот раз результаты были лучше, он срабатывал на 4 из 5 устройств.

2) Еще один тестовый сценарий: я зарегистрировал событие Geofence Enter (которое, очевидно, не имеет задержки на празднование), и на этот раз оно сработало на всех устройствах.

В идеале мне нужно, чтобы событие Geofence Dwell запускалось с задержкой в ​​10 секунд, потому что мне не нужны частые уведомления Geofence при входе в событие.

Пожалуйста, предложите, что может быть не так с Geofence Dwell с более длительными задержками. Любая помощь будет оценена по достоинству.

Заранее спасибо.


person pratiti-systematix    schedule 12.07.2016    source источник
comment
Просто в целях тестирования — вы можете попробовать протестировать на разных устройствах с Google Maps на переднем плане. В этом случае вы сможете узнать, заключается ли проблема в самой геозоне или в службах определения местоположения.   -  person pkuszewski    schedule 14.07.2016
comment
Согласен с pkuszwski. Мое быстрое соображение заключается в том, что местоположение настолько неточное, а ваша геозона настолько мала, что позиция выходит за ее пределы в течение 5-секундного периода. Насколько большие геозоны вы используете? Кроме того, вы тестируете на переднем плане или в фоновом режиме? Я обнаружил, что существует огромная разница между способностью разных устройств Android обнаруживать геозоны в спящем режиме.   -  person Annina    schedule 04.08.2016


Ответы (1)


Типичные причины задержки срабатывания задержки:

  1. Адаптер местоположения должен быть включен и установлен в режим высокой точности (в настройках системы).
  2. Чтобы задержка произошла, мобильный телефон должен находиться в пути, то есть в движении (если он подключен к зарядке или USB, Android распознает его как неподвижный и задерживает расчеты местоположения).
  3. Оптимизация батареи должна быть отключена (триггеры будут срабатывать, если она включена).
  4. Попробуйте вручную запустить Google Maps, Ola/Uber и другие приложения, которые заставят устройство получать точное обновление местоположения. Если такие приложения находятся на переднем плане, триггеры работают быстрее и точнее.

Если вам требуется всего лишь разница в 10 секунд задержки, вы также можете запустить собственную логику таймера в фоновом потоке; поскольку в реальном мире, какое расстояние в метрах (которое вы указываете в качестве радиуса геозоны) действительно проедет устройство за 10 секунд?

person Mayuri Khinvasara    schedule 08.08.2019