Bluetooth Low Energy в паре против непарного соединения - PullRequest
1 голос
/ 19 марта 2019

Насколько я понимаю, связь Bluetooth Low Energy может быть установлена ​​с сопряжением или без него. Это в контексте мобильной разработки, в частности Android, но я считаю, что iOS более или менее одинакова.

Есть ли случаи, когда один выбирал один над другим? И какова будет цель? Что технически считается парным соединением, а что - непарным?

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

Edit:

Причина, по которой я задаю этот вопрос, заключается в том, что, по-моему, я хочу зашифровать непарные соединения BLE. В некоторых случаях, и, по сути, в моем основном случае использования, мобильное устройство может хотеть подключаться к нескольким различным периферийным устройствам случайным образом в разное время в течение дня, и процесс физического принятия запроса на соединение кажется ненужным и довольно трудоемким. Под «случайным» я имею в виду, что я иду мимо одного, если вокруг моей квартиры разбросано дюжина, и я лично не знаю точно, какой из них без физической проверки. Мне не нужно ходить по комнате в первый раз, и мне приходится вручную сопрягать каждое устройство, что было бы безумием, если бы у меня было 100 устройств. Обратите внимание, что эти устройства не обязательно должны быть подключены одновременно, но могут. Также обратите внимание, что я понимаю, что это, как правило, не основной вариант использования типичного варианта использования периферийных устройств для мобильных устройств.

1 Ответ

4 голосов
/ 19 марта 2019

Вот несколько отличий:

Если вы связываете устройства, ссылка становится зашифрованной, что делает ее более безопасной.Таким образом, «парная» связь в основном означает, что ссылка зашифрована, плюс устройство «знает», с чем оно говорит.

Удаленное устройство также распознает IRK вашего телефона (ключ определения личности), который можно использовать для идентификации телефона.позже.По умолчанию телефон поворачивает адрес устройства Bluetooth каждые 15 минут или около того.Не зная IRK, периферийное устройство не может идентифицировать телефон.

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

В Android соединение по Bluetooth-адресу устройства без первого сканирования прервано, поскольку в API отсутствует бит «тип адреса» (общедоступный / случайный адрес).Если Android «угадывает» неправильно, вы подключитесь к неправильному устройству и, следовательно, не сможете.Однако, если устройства связаны, тип адреса сохраняется и ищется на основе адреса устройства Bluetooth, что делает его работу ожидаемой.Поэтому, если вы планируете автоматически подключаться к периферийным устройствам в фоновом режиме, например, при загрузке, рекомендуется связать устройства.

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

Некоторые профили Bluetooth требуют соединения, например HID (по крайней мере, на iOS и Android).

...