#ios #objective-c #iphone #core-location #ibeacon
#iOS #objective-c #iPhone #расположение ядра #ibeacon
Вопрос:
Иногда приложение не выполняло событие didExitRegion в следующих случаях.
- Bluetooth ОТКЛЮЧЕН
- Держите устройство / маяк подальше
- Отключил маяк
После пропущенного события didExit didEnter even также не будет выполняться, потому что iOS (OS / App) считает, что маяк все еще существует. Это происходит до перезапуска цикла питания маяка.
Я попытался решить эту проблему программно. Но, похоже, я это не исправил.
Я попробовал следующие шаги, чтобы преодолеть эту проблему
- Основываясь на статусе ранжирования / определения, я выполнил событие didExit вручную. (Это не помогло)
- Я попытался перезапустить мониторинг маяка (это не помогло)
Аспектный результат: события didEnter / didExit должны выполняться, когда маяк входит в диапазон или выходит из диапазона.
Комментарии:
1. Вы пробовали использовать мониторинг состояния CoreBluetooth для определения изменений мощности Bluetooth и использования
requestState(for:)
при повторном включении BT? Или удалить область маяка при отключении питания и воссоздать ее при восстановлении питания?2. Да, мы попробовали то же самое с requestState. Но это не помогло. Я не понимаю вашу точку зрения «удалить область маяка». Не могли бы вы дать мне более подробную информацию об этом??
3. Прекратите мониторинг
CLBeaconRegion
и перерегистрируйте его