Скорость фонового сканирования Eddystone/iBeacon IOS

Я пытаюсь разработать приложение IOS для обнаружения Eddystone, а также iBeacons. Для реализации я использовал как Corelocation, так и Corebluetooth. Я хочу обнаруживать маяки в фоновом режиме и, следовательно, также настраивать фоновый режим. Я наблюдаю, что через несколько минут в фоновом режиме частота сканирования значительно снижается (раз в 5 минут). Есть ли способ установить частоту фонового сканирования для приложений IOS? 5 минут кажутся долгим временем для варианта использования приложения, которое я разрабатываю. Кроме того, есть ли способ разбудить приложение, если в пределах досягаемости находится другой маяк?


person Parth Parekh    schedule 17.08.2016    source источник


Ответы (1)


Сканирование устройств BLE на iOS с использованием CoreBluetooth в фоновом режиме может быть относительно медленным, как вы предполагаете. Ваше 5-минутное время обнаружения не является чем-то необычным. Сам по себе CoreBluetooth не дает возможности увеличить эту частоту. CoreLocation, однако, гораздо более оптимизирован для скорости обнаружения, но он ограничен форматом iBeacon.

Одна вещь, которую вы можете сделать, это комбинировать маяки, которые отправляют кадр iBeacon (для скорости) с маяками, которые отправляют кадр Eddystone (для других целей). Если вы начнете искать маяки, когда получите фоновое событие мониторинга iBeacon, вы обнаружите, что время обнаружения Eddystone также ускорилось. Этот трюк позволяет запустить сканирование CoreBluetooth с ранжированием CoreLocation — внутри они действительно одинаковы.

person davidgyoung    schedule 17.08.2016
comment
Моя основная цель — как можно быстрее обнаружить новый адрес Eddystone в фоновом режиме. Поэтому, если я иду из одной комнаты в другую, мне не нужно ждать 5 минут, пока будет обнаружен новый адрес. Если я заставлю какое-то излучающее устройство излучать как iBeacon, так и Eddystone и использовать CoreLocation для обнаружения изменений, я смогу сканировать Eddystone одновременно, вы имеете в виду? Если вы пробовали это раньше, как быстро приложение сможет обнаружить изменение адреса Eddystone с точки зрения времени? Спасибо - person Parth Parekh; 17.08.2016
comment
Я не измерял, насколько быстро это происходит, но я подозреваю, что это будет похоже на сканирование переднего плана с помощью CoreBluetooth. - person davidgyoung; 17.08.2016
comment
@davidgyoung, не могли бы вы рассказать, как мне объединить iBeacon и Eddystone, чтобы я мог получить URL-адрес от eddystone, когда приложение находится в фоновом режиме? - person swapnali patil; 08.09.2016
comment
Это достойно нового вопроса. Основная идея состоит в том, чтобы настроить мониторинг маяков CoreLocation в AppDelegate. Если вы откроете новый вопрос, показывающий ваш код обнаружения Eddystone, я могу помочь. - person davidgyoung; 08.09.2016