У меня есть устройство Bluetooth.Как только я подключусь к нему, я хочу подключиться к нему в фоновом режиме.Проблема в том, что я не знаю, как я могу подключиться к устройству после того, как пользователь принудительно покинул приложение (даже после запуска нового приложения)
Что у меня есть: устройство Bluetooth без служб в рекламных данных.
Поскольку в нем нет рекламных данных, я не могу искать периферийные устройства со службами в фоновом режиме.Так что для исключения фона мне нужно вызвать centralManager.connect ()
Если приложение закрывается из-за проблемы с памятью или чего-то подобного, я могу восстановить все в centralManager метод делегирования willRestoreState dict содержит периферийное устройство, которое я могу получить с помощью CBCentralManagerRestoredStatePeripheralsKey .(Также я реализовал, чтобы получить UIApplicationLaunchOptionsKey.bluetoothCentrals из launchOptions в willFinishLaunchingWithOptions
Проблема
Восстановление простоработает, если у пользователя нет принудительного выхода из приложения. Поэтому я знаю, что не могу перезапустить приложение самостоятельно с кодом.
Все, что я хочу, - это если пользователь перезапустит приложение, чтобы восстановить мой CBPeripheral. ПослеЯ мог бы снова вызвать centralManager.connect (периферийное устройство).
дополнительная информация
Я сохраняю uuid периферийного устройства (периферическое.identifier.uuidString) в NSUserDefault Data.
Идеи
- Я думал о создании CBPeripheral объекта с информацией об устройстве. Если я прочитал все правильно, это невозможно.
- Если я сохраню CBPeripheral в Core Data, я не знаю, что будетпроизойдет, если Apple изменит API CBPeripherals, вероятно, это будет плохая идея.
- В некотором смысле Apple может сделать снимок CBPeriphEral.Можно ли активировать этот снимок, чтобы можно было восстановить периферийное устройство с помощью UIApplicationLaunchOptionsKey.bluetoothCentrals и CBCentralManagerRestoredStatePeripheralsKey каждый раз?