Android Things BLE периферийные шифрованные разрешения на запись и чтение

В отношении настройки контакта с периферийным устройством Bluetooth Low Energy не так много документации. В моей службе Гатта я установил BluetoothGattCharacteristic.PERMISSION_WRITE_ENCRYPTED_MITM и получить GATT_INSUFFICIENT_PERMISSION сообщение в моем журнале при попытке записи в настройку записи Bluetooth, которую я настроил. Мне было интересно, каков процесс включения шифрования для периферийных устройств.

Спасибо

1 ответ

Решение

Bluetooth LE требует, чтобы устройства были связаны (спарены), прежде чем они смогут успешно шифровать передачи, используемые для чтения / записи заданной характеристики. Android не обрабатывает этот процесс для вас, поэтому вам нужно будет инициировать сопряжение между двумя устройствами, прежде чем будут предприняты какие-либо транзакции GATT.

С текущими предварительными версиями Android Things разработка приложения "Настройки" (которое обычно выполняет большую часть процесса сопряжения устройств) в значительной степени меняется. Таким образом, традиционные рабочие процессы для сопряжения устройства, вероятно, не будут работать в данный момент, пока эти изменения не будут завершены.

Вы можете попробовать инициировать запрос на сопряжение со своего устройства Android Things с помощью createBond (), прослушать трансляцию ACTION_PAIRING_REQUEST и применить необходимый PIN-код с помощью setPin (). Некоторая комбинация из них может работать для вас в краткосрочной перспективе, пока не будет доступно более официальное решение.

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