Статус Bluetooth LE на iOS после перезагрузки телефона при поиске iBeacon

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

Согласно документации Apple:

Служба мониторинга региона доставляет события в обычном режиме, пока приложение работает в фоновом или фоновом режиме. (Вы можете использовать эту службу как для географических регионов, так и для регионов-маяков.) Для завершенного приложения iOS эта служба перезапускает приложение для доставки событий. Для использования этой услуги требуется авторизация пользователя «Всегда».

Я использую:

  • [CLLocationManager startMonitoringForRegion:] для поиска iBeacons
  • locationManager:didEnterRegion: и locationManager:didExitRegion: делегаты
  • Прошу CLBeaconRegion уведомить меня о notifyOnEntry и notifyOnExit
  • Фоновые разрешения для выполнения правильно установлены для местоположения

Пока он работает достаточно хорошо, приложение правильно перезагружается, когда я убиваю приложение, но вхожу в регион iBeacon. Он также работает, когда я перезагружаю телефон, поэтому конфигурация моего приложения выглядит нормально.

Однако, если я позволю своему телефону выключить экран сразу после перезагрузки, а не использовать его, телефон может очень медленно (через несколько часов) реагировать на изменение региона маяка. Если я активно включаю экран и разблокирую телефон, кажется, что телефон быстрее реагирует на iBeacon.

Вот что я заметил (iOS 9.3) сразу после перезагрузки:

  • на экране блокировки значок bluetooth отсутствует, даже если значок bluetooth хорошо активирован после того, как я разблокирую телефон; Стоит отметить, что если я активирую какое-либо изменение региона маяка, приложение не будет реагировать сразу после перезагрузки
  • после однократной разблокировки телефона, когда я иногда включаю экран, не разблокируя телефон, кажется, что пока значок bluetooth не появляется, любое изменение региона маяка ничего не запускает
  • в какой-то момент на экране блокировки начинает появляться значок Bluetooth; кажется, что телефон реагирует на изменение региона маяка

Есть ли какие-то объяснения того, как Bluetooth управляется при перезапуске? Можно ли это предсказать?

Мне нужно объяснить, почему мониторинг регионов на iBeacon не так реагирует после перезагрузки телефона. Интересно, ожидает ли телефон своего рода «значительного изменения местоположения», чтобы правильно включить свое устройство Bluetooth.


person Vincent Hiribarren    schedule 17.05.2016    source источник


Ответы (1)


Мониторинг маяка после перезагрузки iPhone требует времени. По моим тестам, запуск события (область ввода) занимает примерно 4 минуты. Тесты выполнены на iPhone6 ​​iOS9.

person fvisticot    schedule 20.09.2016