Фоновый режим Bluetooth IOS - PullRequest
       21

Фоновый режим Bluetooth IOS

0 голосов
/ 29 октября 2018

Я искал проблему с Bluetooth несколько дней, но не нашел никакого полезного решения. Мне бы хотелось более точно читать рекламные данные с периферийных устройств через приложение ios, когда оно находится в фоновом режиме. В моем случае периферийные устройства - это чипы Nordic nrf51822, а центральное устройство - ios phone. Я успешно реализовал фоновый режим Bluetooth, и он хорошо работает на устройстве ios. Обработчик событий DiscoveredPeripheral вызывается при обнаружении нового периферийного устройства. Но проблема в том, что он вызывается только в первый раз, когда периферийное устройство становится видимым. Если я выключаю и включаю периферийное устройство, событие DiscoverdPeripheral больше не вызывается. Я знаю, что это ограничение IOS, но я не знаю, как я могу справиться с этим ограничением IOS. В конце я хотел бы, чтобы приложение в фоновом режиме запускало сканирование периферийных устройств с определенным UUID периодически, например, каждые 10 минут. На данный момент я хотел бы спросить, возможно ли реализовать этот сценарий в ios, если да, то я благодарен за любую помощь.

1 Ответ

0 голосов
/ 29 октября 2018

Обработчик событий DiscoveredPeripheral вызывается при обнаружении нового периферийного устройства.

Это не правильно. Он будет вызываться только один раз за звонок на scanForPeripherals. Когда устройство подключится, вы должны остановить сканирование. Когда устройство отключится, что вы должны увидеть как centralManager(_:didDisconnectPeripheral:error:), вы можете начать сканирование снова.

Еще лучше, если вы хотите подключиться только к тому же устройству, не сканируйте вообще. Просто позвоните connect для этого периферийного UUID. Он продолжит работу, пока вы находитесь в фоновом режиме, и разбудит вас, когда соединение установится успешно.

Чтобы продвинуться дальше, внедрите Восстановление состояния Bluetooth , что позволит вам автоматически переподключаться даже после перезагрузки.

...