Подключенное периферийное устройство в фоновом режиме (Core Bluetooth)

Я пытаюсь реализовать следующий сценарий:

  • Откройте приложение и подключитесь к периферийному устройству BLE. Работает
  • Отправьте приложение в фоновый режим и поддерживайте связь. Работает
  • Выключите периферийное устройство BLE, и приложение получит уведомление об отключении. Работает
  • Включите периферийное устройство BLE, и приложение получит уведомление об отключении. Работает
  • Снова выключите периферийное устройство BLE. Работает
  • Подождите 2 дня с приложением в фоновом режиме и включите периферийное устройство BLE, но приложение ничего не делает. НЕ работает

Как я могу выполнить этот последний шаг? iOS убивает фоновые приложения, когда это необходимо, но есть ли способ получать уведомления при обнаружении ранее подключенного периферийного устройства? Я читал что-то о восстановлении состояния CB, но я действительно не знаю, решит ли это эту ситуацию.


person Alex Tarragó    schedule 18.05.2016    source источник


Ответы (1)


Сохранение/восстановление основного состояния Bluetooth — это именно то, что вам нужно. Если ваше приложение приостановлено, оно запустит ваше приложение, если периферийное устройство подключается/отключается или приходит уведомление. Однако он нарушен по дизайну, так как ваше приложение перестанет просыпаться, если Bluetooth по какой-либо причине будет перезапущен. Примерами являются сбои Bluetooth (случается время от времени), если пользователь переключает Bluetooth или режим полета или перезагружает телефон.

person Emil    schedule 26.09.2016