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

Наше устройство BLE использует ANCS и подключается как периферийное устройство в приложении ios. Моя проблема возникает в том случае, когда часы сначала подключаются на экране настроек, а затем не отображаются на сканируемом устройстве, поэтому они не подключаются, когда приложение находится в фоновом режиме, потому что оно подключается за пределами приложения, по причине того, что iphone связан с устройством. Хотя я могу получить его с помощью функции retrievePeripheral. Но он должен быть запущен вручную, я ищу какую-то функцию наблюдателя или делегата, которая вызывается, когда устройство BLE вызывается через систему, чтобы я мог получить периферийные устройства. Как подключиться, когда приложение работает в фоновом режиме, а сначала подключено устройство в настройках? Одно из решений, о котором я подумал, - запустить таймер, который будет вызывать эту функцию retrievePeripheral через фиксированный интервал, но это потребляет батарею. Если у кого-то есть идея получше, пожалуйста, просветите меня.

Я перепробовал почти все, я знаю, что функция сканирования работает в фоновом режиме с идентификаторами сервисов, но я говорю о сценарии, когда устройство невозможно обнаружить, так как оно сначала подключается на экране настроек.

0 ответов

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

Другие вопросы по тегам