iBeacons: Если приложение находится в фоновом режиме, locationManager: didEnterRegion: вызывается только при отображении экрана блокировки

Я работаю над iOS-приложением, которое контролирует области iBeacon. Когда приложение работает в фоновом режиме, я хочу, чтобы он отправлял локальное уведомление всякий раз, когда он сталкивается с определенной областью iBeacon. Все работает отлично, за исключением одного: locationManager: didEnterRegion, по-видимому, не вызывается, пока пользователь не отобразит экран блокировки. Таким образом, даже если устройство прошло через область iBeacon, когда приложение было в фоновом режиме, они не получают уведомление, пока не отобразятся экран блокировки.

Я также пробовал использовать startMonitoringForRegion, и такие работы – если приложение работает в фоновом режиме, locationManager: didDetermineState: срабатывает, когда устройство входит в область iBeacon. Тем не менее, он делает это только один раз – если пользователь впоследствии выйдет и снова войдет в зону iBeacon, locationManager: didDetermineState не запускается снова.

Я запускаю iPhone 5 и использую iPhone 4 как iBeacon, если это имеет значение.

Исправление: это явление, очевидно, происходит только тогда, когда я использую iPhone 4 как клиент. Если я использую 5 секунд, уведомление доставляется немедленно.

3 Solutions collect form web for “iBeacons: Если приложение находится в фоновом режиме, locationManager: didEnterRegion: вызывается только при отображении экрана блокировки”

Просто пытаюсь получить больше информации. Вы установили notifyEntryStateOnDisplay в YES на CLBeaconRegion? Похоже на это.

Из документации:

Когда установлено значение «ДА», диспетчер местоположений отправляет уведомления маяка, когда пользователь включает дисплей, а устройство уже находится внутри региона. Эти уведомления отправляются, даже если ваше приложение не запущено. В этой ситуации система запускает ваше приложение в фоновом режиме, чтобы оно могло обрабатывать уведомления. В обеих ситуациях диспетчер местоположений вызывает метод locationManager: didDetermineState: forRegion: его объекта-делегата.

Значение по умолчанию для этого свойства равно NO.

У меня была аналогичная проблема, и я попробовал различные изменения уровня кода, описанные выше (и другие сообщения). Ранжирование работало, но обнаружение зоны входа и выхода не выполнялось.

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

У меня была такая же проблема. Я был уверен, что все хорошо.

Решение было очень просто: просто удалите приложение с устройства и запустите его снова в Xcode. Это работало для меня как шарм.

  • EXC_BAD_ACCESS при установке CLBeacon на ноль
  • Как перенести приложение на передний план в ios?
  • Как сканировать несколько регионов, используя startMonitoringForRegion в Objective-C
  • Мониторинг региона не работает в iOS, если в регионе нет крупных
  • Почему маяки заставляют Bluetooth постоянно переключаться?
  • Получить рекламные данные для BLE в iOS
  • Проблема обнаружения маяка Eddystone
  • Войдите в область iBeacon с приложением в фоновом режиме и запросите URL без уведомления.
  • Интеграция периферийных устройств iBeacon и coreBluetooth
  • CLLocationManager requestStateForRegion с кодом ошибки «При использовании» 4
  • как использовать ibeacon при применении в bacground и перезагрузке iphone
  • Interesting Posts

    UIWebView webCore сбой в iOS7.1 (пример: www.latimes.com)

    Неопределенные символы для архитектуры armv7 при работе с objc_setAssociatedObject

    Почему высота последней ячейки UITableView используется для оставшихся пустых ячеек?

    Тип выражения неоднозначен без дополнительного контекста (перечисление)

    Использование MMDrawer только в режиме суб-навигации

    обновлять данные в приложении после уведомления с сервера – даже когда сила ушла?

    iOS: жестов прокрутки не распознается, когда салфетки начинаются снаружи экрана iPad

    Обновление приложения iOS с обновленной моделью данных ядра

    iOS: обработка UIGestureRecognisers в представлениях UI (Sub)

    Как получить UIColor из ассоциативного массива в Swift

    XCode 6.3 MKPointAnnotation setCoordinate отсутствует

    UITableView -> Как загрузить дополнительную запись при прокрутке вниз?

    Преобразование NSString в unichar в iOS

    Использовать многократный репортер сбоев на iOS

    Ошибка Xcode 4: ошибка при запуске исполняемого файла

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.