Bluetooth-соединение с Android - PullRequest
17 голосов
/ 23 марта 2011


Кто-нибудь может подсказать, как узнать какой метод сопряжения использовал телефон при подключении к другому устройству?
У меня есть Nexus S (Android 2.3.3) и устройство BT (Bluetooth2.1 + EDR).
Когда я пытаюсь соединить их, мне не нужно ничего вводить (пароль). Поскольку оба устройства имеют Bluetooth 2.1, я хочу знать, какую технику сопряжения они использовали.
Можем ли мы указать метод сопряжения с телефоном?

Ответы [ 2 ]

18 голосов
/ 23 марта 2011

Когда оба устройства имеют версию 2.1 и выше, вместо устаревшего соединения используется безопасное простое соединение (SSP) (устаревшее соединение - это то, где пользователю необходимо было ввести одинаковый PIN-код на обоих устройствах для подключения, и в большинстве случаев используется PIN-код быть общеизвестными общими комбинациями 0000 или 1234)

Безопасное простое сопряжение упрощает процесс и избавляет от необходимости вводить PIN-коды, вместо этого оно автоматически генерирует 6-значные пароли в качестве части процесса сопряжения, и пользователю может потребоваться только подтвердить / ввести пароль на одном или нескольких устройств.

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

Если на одном из устройств нет дисплея или ввода для ввода 6 цифр, тогда используется «Просто работает» модель ассоциации, при этом пользовательский ввод не требуется при сопряжении. В Android можно принудительно использовать эту модель в приложениях SPP при использовании API createInsecureRfcommSocketToServiceRecord (). Эта модель обычно используется при сопряжении с наушниками, другими небольшими устройствами без дисплея или возможности ввода

Другие модели ассоциации:

  • Числовое сравнение - если на обоих устройствах отображается 6-значное число, и пользователю предлагается подтвердить, что они совпадают. Используется, когда оба устройства имеют дисплей и могут вводить Да / Нет.

  • Ввод пароля - Когда одно из устройств имеет только возможность ввода и не имеет возможности вывода вывода, а другое имеет возможность вывода / отображения, здесь пользователю будет предложено ввести 6 цифр на устройстве, способном только для ввода. как показано на дисплее способного устройства.

  • Out-of-Band - где устройства обмениваются информацией о сопряжении по другому каналу (кроме Bluetooth), например, NFC или некоторому другому безопасному механизму.

4 голосов
/ 29 апреля 2011

Вы можете либо прослушать трафик Bluetooth, либо взять журнал, чтобы выяснить, какая техника используется.На оболочке Nexus-S $ adb hcidump -XVt покажет вам журнал.Если обмен данными о входах / выходах происходит, чем при сопряжении Bluetooth 2.1.

Другой вариант - включить журнал bluetoothd в файле init.herring.rc и определить, какой метод сопряжения используется.* В вашем случае это определенно сопряжение Bluetooth 2.1, а проблема в другом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...