Как запросить аутентификацию перед подключением к устройствам по bluetooth?

Я хочу сделать демонстрационное приложение, которое содержит следующие функции.

  1. поиск и отображение списка устройств в диапазоне Bluetooth моего устройства.
  2. подключить (выполнить сопряжение) выбранные устройства.
  3. затем поделитесь строковыми данными.

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

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

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


person Vinod Jadhav    schedule 23.04.2017    source источник
comment
Если ваше периферийное устройство имеет характеристики, требующие шифрования, iOS предложит выполнить сопряжение. Если нет, то он просто подключится   -  person Paulw11    schedule 23.04.2017
comment
@ Paulw11, когда мы подключаем другие андроид устройства при подключении, мы просим ввести код, тогда он подключится. но здесь я могу показать список устройств, и когда я вызываю метод подключения, он покажет мне прямое подключение. это поведение iOS или я ошибаюсь.   -  person Vinod Jadhav    schedule 23.04.2017
comment
Как я уже сказал, на iOS, если периферийное устройство BLE не требует шифрования, тогда для подключения не требуется никакого сопряжения (фактически связывания), соединение просто продолжится.   -  person Paulw11    schedule 23.04.2017
comment
@VinodJadhav: Какое у вас целевое устройство? Какая у вас целевая версия Bluetooth? , Какой профиль Bluetooth используется для подключения.   -  person Vineesh TP    schedule 29.08.2017


Ответы (2)


Для всех, кто бьется головой об стену, у меня есть решение этой проблемы. Это так же просто, как установить флаг «Требуется АУТЕНТИФИКАЦИЯ» для характеристики на вашем устройстве BLE. Как только этот флаг установлен, вам нужно попытаться выполнить ЧТЕНИЕ из этой службы / характеристики с помощью устройства iOS. После запроса чтения устройство BLE отправит обратно сообщение об ошибке, которое затем предложит iOS отобразить всплывающее окно PAIRING / BONDING. После этого ты золотой.

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

введите описание изображения здесь

person Mark McCorkle    schedule 20.10.2018

да, можно запросить запрос на сопряжение от устройства BLE к ios.

Я выполнил следующие шаги, чтобы приложение iOS запрашивало сопряжение.

  1. отредактировал мое приложение ble, чтобы вернуть код ошибки 'RBLE_ATT_ERR_INSUFF_AUTHEN', используя функцию ответа записи gatt.
  2. попытался записать из приложения ios, после чего мне было предложено ввести ключ сопряжения.
  3. использовал случайно сгенерированный ключ сопряжения устройством BLE для сопряжения.

Комментарий Paulw11 также помог мне решить эту проблему,

С уважением, Бхарат Г.К.

person Bharath G K    schedule 11.07.2017