Может ли кто-нибудь сказать мне, как узнать, какой телефон техники сопряжения используется при подключении к другому устройству?
У меня есть Nexus S (Android 2.3.3) и BT-устройство (Bluetooth2.1 + EDR).
Когда я пытаюсь их соединить, мне не нужно вводить какие-либо данные (passkey). Поскольку у обоих устройств есть bluetooth 2.1, я хочу знать, какую технику сопряжения они использовали.
Можем ли мы указать метод сопряжения на телефон?
Bluetooth Bluetooth-соединение
Ответ 1
Когда оба устройства равны 2.1, и выше, используется безопасное соединение (SSP) вместо старого соединения (унаследованное сопряжение - это тот, где пользователю необходимо вводить один и тот же PIN-код на обоих устройствах для подключения, а в большинстве случаев используется PIN-код для общеизвестных общих комбинаций 0000 или 1234)
Безопасное простое соединение упрощает процесс и избавляется от необходимости вводить ПИН-коды, вместо этого он автоматически генерирует 6-значные ключи доступа в качестве части процесса сопряжения, и пользователю может потребоваться только проверка/ввод ключа доступа на одном или нескольких устройств.
Secure Simple Pairing (SSP) дополнительно имеет несколько различных режимов ассоциации, и используемая модель ассоциации определяется возможностями отображения и ввода на устройствах, которые пытаются соединить.
Если на одном из устройств нет дисплея или ввода для ввода 6 цифр, используется "Только работает" модель ассоциации, в этом пользовательский ввод не требуется во время спаривания. В Android можно заставить эту модель использовать приложения SPP при использовании API createInsecureRfcommSocketToServiceRecord(). Эта модель обычно используется при сопряжении с гарнитурами, другими маленькими устройствами без возможности отображения или ввода.
Другие модели ассоциации:
-
Числовое сравнение. Если на обоих устройствах отображается 6-значное число, и пользователю предлагается подтвердить, что они одинаковы. Используется, когда оба устройства имеют дисплей и могут вводить Да/Нет.
-
Ввод пароля - когда одно из устройств имеет только входную способность и не имеет возможности вывода, а у другого есть возможность вывода/отображения, здесь пользователю будет предложено ввести 6 цифр на устройстве с поддержкой только ввода как показано на устройстве, поддерживающем дисплей.
-
Out-of-Band - если устройства обмениваются информацией о соединении через другой канал (кроме Bluetooth), например, NFC или какой-либо другой безопасный механизм.
Ответ 2
Вы можете либо понюхать трафик Bluetooth, либо взять журнал, чтобы выяснить, какой метод используется. На оболочке Nexus-S $adb hcidump -XVt покажет вам журнал. Если обмен ввода-вывода обменивается, чем его соединение Bluetooth 2.1.
Другим вариантом является включение bluetoothd в файл init.herring.rc, и вы можете выяснить, какой метод сопряжения используется.
Его наиболее определенная связь Bluetooth 2.1 в вашем случае и проблема в другом месте.