Повторная подписка CoreBluetooth на характеристику при повторном подключении

В моем приложении я могу успешно подключиться к периферийному устройству BLE и подписаться на характеристику, чтобы приложение получало уведомления всякий раз, когда происходит изменение значения характеристики. Но приложение не уведомляется об изменении значения характеристики после повторной инициализации центрального менеджера во время восстановления состояния. Ниже то, что я делаю во время восстановления состояния:

  • В didFinishLaunchingWithOptions: я повторно создаю объект центрального менеджера с идентификатором восстановления.
  • Затем в методе CentralManager:willRestoreState: я извлекаю ранее подключенные периферийные устройства и повторно подключаюсь к ним с помощью
    CBCentralManagerRestoredStatePeripheralsKey.

Будет ли простое повторное подключение к периферийным устройствам выполнять внутреннюю подписку на характеристики или поиск служб и подписка на характеристики будут выполняться явно, как это делается при первом запуске?


person saikamesh    schedule 07.12.2017    source источник


Ответы (1)


Я не удивлюсь, если это ошибка, поэтому надежным решением будет подписаться на уведомляющую характеристику, когда ваше приложение возобновляет работу.

person MattD    schedule 08.12.2017