иногда пропущено событие didExitRegion в iBeacon

#ios #objective-c #iphone #core-location #ibeacon

#iOS #objective-c #iPhone #расположение ядра #ibeacon

Вопрос:

Иногда приложение не выполняло событие didExitRegion в следующих случаях.

  • Bluetooth ОТКЛЮЧЕН
  • Держите устройство / маяк подальше
  • Отключил маяк

После пропущенного события didExit didEnter even также не будет выполняться, потому что iOS (OS / App) считает, что маяк все еще существует. Это происходит до перезапуска цикла питания маяка.

Я попытался решить эту проблему программно. Но, похоже, я это не исправил.

Я попробовал следующие шаги, чтобы преодолеть эту проблему

  1. Основываясь на статусе ранжирования / определения, я выполнил событие didExit вручную. (Это не помогло)
  2. Я попытался перезапустить мониторинг маяка (это не помогло)

Аспектный результат: события didEnter / didExit должны выполняться, когда маяк входит в диапазон или выходит из диапазона.

Комментарии:

1. Вы пробовали использовать мониторинг состояния CoreBluetooth для определения изменений мощности Bluetooth и использования requestState(for:) при повторном включении BT? Или удалить область маяка при отключении питания и воссоздать ее при восстановлении питания?

2. Да, мы попробовали то же самое с requestState. Но это не помогло. Я не понимаю вашу точку зрения «удалить область маяка». Не могли бы вы дать мне более подробную информацию об этом??

3. Прекратите мониторинг CLBeaconRegion и перерегистрируйте его