CentralManager:didDiscoverPeripheral:advertisementData:RSSI: вызывается только один раз за рекламный период

Я хотел бы захватить всю рекламу устройств BLE. Устройство BLE настроено на пробуждение каждую минуту, а затем на трансляцию каждые 3 секунды, всего 15 секунд.

Но я заметил, что CentralManager:didDiscoverPeripheral:advertisementData:RSSI: вызывается только один раз за рекламный период (15 секунд), который отображается на телефоне, когда приложение находится на переднем плане.

Это то, что я наблюдал за последние пару часов. Что породило два вопроса.

Во-первых, как я могу захватить 3-секундную рекламу в течение 15-секундного периода? Во-вторых, почему в моих захваченных данных увеличивается количество мертвых периодов.


person HurkNburkS    schedule 07.12.2017    source источник
comment
покажи свой код пожалуйста   -  person Neo    schedule 08.12.2017


Ответы (1)


CentralManager имеет параметр CBCentralManagerScanOptionAllowDuplicatesKey, когда вы инициируете сканирование по умолчанию. это ложь.

Установите для него значение true, и вы должны получить несколько сканирований для одного и того же устройства.

scanForPeripheralsWithServices(nil, options: [CBCentralManagerScanOptionAllowDuplicatesKey : true])
person Neo    schedule 08.12.2017