Я работаю с периферийным устройством Bluetooth, которое после подключения к нему выполняет ACK туда-сюда, прежде чем он действительно сможет отправить мне нужные мне данные.
Поток выглядит так:
- Обнаружение периферийных устройств
- Подключение к периферийным устройствам
- Обнаружение услуг и характеристик
- Прослушивание обновлений по определенной характеристике
- Периферийные отправкиспециальное сообщение с этой характеристикой
- Затем приложение отправляет ACK на периферийное устройство
- Периферийное устройство отправляет мне данные, необходимые для приложения
Я реализовалнеобходимая логика в методе протокола для сохранения и восстановления состояния centralManager(_ central: CBCentralManager, willRestoreState dict: [String : Any])
Вопрос 1:
Когда приложение находится в фоновом режиме, а iOS решает захватить Bluetoothобщение (по соображениям ресурсов), как iOS сможет выполнить шаги 5, 6 и 7?
Поскольку, если это невозможно, периферийное устройство не сможет отправлять данные, необходимые приложению на шаге 7.
Вопрос 2:
В документации я читал, что iOS может запустить ваше приложение на несколько секунд.Будет ли в этом случае выполняться метод viewDidLoad
моего корневого ViewController?Вот где я создаю экземпляр CBCentralManager
Некоторые из многих онлайн-ресурсов, которые я нашел:
Базовая обработка фона Bluetooth для приложений iOS
от нуля до BLE на iOS - часть третья