Сценарий автоматического подключения BLE и ANCS

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

Постановка проблемы здесь такова:
Я не использую программу Apple MFI. Когда я сканирую устройство в первый раз, оно обнаруживается на основе идентификаторов служб. После успешного подключения ANCS устанавливает и запрашивает запрос на сопряжение, который отображается в приложении.

Если устройство как-то отключается и пользователь включает его вручную. Устройство автоматически подключается с внешнего экрана настроек Bluetooth. Это приводит к проблеме, в которой я не могу сканировать устройство из самого приложения, так как оно подключается извне, и, следовательно, рекламные пакеты перестают распространяться. Поскольку я не могу отсканировать часы, я не могу их подключить.

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

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

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

Я застрял на этой проблеме за последние 10 дней.

Пожалуйста, предоставьте решение. Любая помощь приветствуется.

Спасибо

1 ответ

Когда вы пытаетесь сканировать периферийные устройства в вашем приложении, вы должны использовать retrieveConnectedPeripheralsWithServices: сначала до сканирования.

Вот пример:

NSArray *peripherals = [central retrieveConnectedPeripheralsWithServices:@[serviceUUId]];
if (peripherals.count > 0) {
    CBPeripheral *peripheral = [peripherals firstObject];
    peripheral.delegate = self;
    [central connectPeripheral:peripheral options:nil];
} else {
    [central scanForPeripheralsWithServices:@[serviceUUId] options:nil];
}

Лучшие практики для подключения периферийных устройств описаны в документе Apple BLE:

Лучшая практика для подключения периферийных устройств

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