Событие задержки геозоны никогда не получалось при добавлении геозоны с устройством в радиусе - PullRequest
0 голосов
/ 12 мая 2018

Я сделал простое тестовое приложение, установил местоположение и мониторинг геозон, используя LocationServices.getFusedLocationProviderClient и LocationServices.getGeofencingClient.

Я добавил геозону, используя только уведомление о переходе в тупик и начальный триггер, с правильной позицией и радиусомтак, что я ожидал событие «задержка» очень скоро после добавления геозоны:

geofenceBuilder.setTransitionTypes(Geofence.GEOFENCE_TRANSITION_DWELL);
...
builder.setInitialTrigger(GeofencingRequest.INITIAL_TRIGGER_DWELL);

В журнале устройства я заметил несколько из этих двух, каждый раз получалась позиция:

enter image description here

Географическое ожидание не было инициировано.Устройство было на моем столе.

Я не понимал, что происходит.Я даже пытался переключиться на Google Maps и снова переключиться на приложение, оно ничего не делало.Устройство явно не спит, так как я им пользуюсь.Так что же в глубоком сне?Я предполагаю, что какой-то компонент геозоны в Сервисах Google Play?Но приложение постоянно запрашивает местоположение, так почему же геозона Google Play Services не видит, что я нахожусь в этом месте, и отправляет событие 'dwell'?

После того, как я переехал по дому с устройствомдве записи журнала больше не отображаются, и я получил событие задержки геозон!

Мой вывод: если устройство \ Android-компонент находится в этом «спящем» режиме, когда устанавливается геозона, яне думайте, что события геозон не будут срабатывать, по крайней мере, не 'задержка' в моих тестах, так как я пишу это, я не проверял, чтобы узнать, вызывается ли 'enter'.

Что такое «режим глубокого сна» и «GeofencerStateMachine»?Это с Android сервисов Google Play?Как это работает?По какой причине я не получил событие 'dwell'?

На другом устройстве (Samsung Galaxy) я вижу такое же поведение, событие dwell не получено, но нет аналогичной записи в журнале с 'глубокий сон »и перемещение устройства не приводит к тому, что оно получает событие« задержки »...…

Я записываю координаты устройства, и я четко вижу точность около 10, но покасобытие задержки не отправляется.

Обновление: я оставил устройство на столе примерно на 40 минут.Вернулся, открыл приложение, запустил геозону, и снова, событие задержки не было получено, и теперь нет даже события журнала, говорящего "Местоположение отброшено, потому что в режиме глубокого неподвижного изображения" ... Я потерян ...

Обновление 2: даже после переустановки приложения не происходит ни задержка, ни события ввода (я также добавил мониторинг для «ввода»)

...