CBCentralManager не вызывает метод didDiscoverPeripheral, когда iPhone заблокирован
Я работаю над приложением, которое сканирует определенное периферийное устройство, которое обнаруживает, что оно должно отправлять небольшое количество данных.
Приложение работает на переднем плане, а также в фоновом режиме. Я также добавил этот код в плисте
UIBackgroundModes bluetooth-central Когда iPhone заблокирован и периферия начинает рекламу, он не вызывает
func centralManager(central: CBCentralManager!, didDiscoverPeripheral peripheral: CBPeripheral!, advertisementData: [NSObject : AnyObject]!, RSSI: NSNumber!) {
Я провел некоторое исследование, но не смог найти ответ.
Любая помощь приветствуется.
Спасибо
1 ответ
Сохранить обнаруженное CBPeripheral
пример.
var activePeripheral: CBPeripheral!
Или добавив его в массив. Если вы обнаруживаете более одного периферийного устройства.
var knownPeripherals = [CBPeripheral]()
Таким образом, вы можете подключиться к тому, что CBPeripheral
вам нужно (если оно доступно, очевидно).
Этот метод делегата вызывается, когда периферийное устройство отключено optional func centralManager(_ central: CBCentralManager, didDisconnectPeripheral peripheral: CBPeripheral, error error: NSError?)
, Вы можете попробовать использовать его в своих интересах, пытаясь восстановить соединение с периферийным устройством.
И, наконец, вы должны проверить справку Apple для выполнения долгосрочных действий в фоновом режиме.
Надеюсь, поможет!