Есть много связанных вопросов, но (по-видимому) нет ответов. SO ...iOS Как подключиться к устройству BLE в фоновом режиме?
My iOS app делает получает обновления с моего устройства BLE, когда приложение находится в фоновом режиме. Если я потеряю связь с устройством BLE, то в centralManager:didDisconnectPeripheral:
я звоню - [CBCentralManager cancelPeripheralConnection:]
- иначе я никогда не буду снова подключаться к утерянному периферийному устройству. Затем я вызываю вызов [(re) »- [CBCentralManager scanForPeripheralsWithServices:options:]
.
Ведение журнала показывает мне, что звонок didDisconnectPeripheral
, и его содержащиеся звонки, происходят как , а в фоновом режиме. Однако повторное подключение происходит только тогда, когда приложение просыпается с фона.
Так что я могу общаться с подключенным устройством BLE в фоновом режиме (yay!), Но не для повторного подключения. Это очень важно для моего приложения, и (можно подумать) для других приложений. Предложения приветствуются.
К сожалению, не для меня. Фактически, используя connectPeripheral (вместо повторного вызова scanForPeripherals), мое приложение не пересоединяется, даже если оно все еще находится на переднем плане. Соединение никогда не восстанавливается.Если я вызываю scanForPeripheral в didDisconnectPeripheral, я * do * повторно подключаюсь, если на переднем плане, но все еще не в фоновом режиме. Grr. –
Устройство TI SensorTag, FWIW. –
Хорошо. Теги датчиков раздражают - они закрываются через несколько минут, поэтому я не уверен, что это ваша проблема. Устройства iOS также трудно работать, поскольку они меняют MAC-адрес каждые несколько минут. У меня есть сенсорный тег, поэтому я буду играть и посмотреть, что произойдет. Это может занять меня день или два ... – Paulw11