Создание небезопасного сокета RFCOMM все еще требует сопряжения - PullRequest
2 голосов
/ 29 декабря 2011

Я использую listenUsingInsecureRfcommWithServiceRecord и createInsecureRfcommSocketToServiceRecord вызывает для подключения одно устройство Android на другое.

На первой установке у меня были запущены Nexus One и Nexus S. Android 2.3.6 - при этой настройке подключения не всплыло "Сопряжение Запрос "Диалог.

На второй настройке попробовал тот же Nexus One с Samsung Galaxy S2 работает под управлением Android 2.3.3 - по этому параметру «Запрос на сопряжение» диалог появился на обоих устройствах. Это странно, так как оба устройства включены Уровень API 10, который должен поддерживать небезопасное соединение.

Кто-нибудь еще сталкивался с этим странным поведением? Может кто-нибудь проверить что это проблема в 2.3.3, или, возможно, в конкретной модели I тестирование? Есть ли обходной путь?

При необходимости я могу опубликовать соответствующие детали из журнала.

1 Ответ

3 голосов
/ 04 января 2012

Для Bluetooth v2.1, GAP, раздел 5.2.2:

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

Таким образом, чтобы включить шифрование, Bluetooth необходимо создать ключ-ссылку ... Таким образом, необходимо сопряжение SSP.

Не знаю, возможно ли избежать этого в Android.

В противном случае обработайте событие аутентификации и подтвердите пару - очень вероятно, что пара получит форму «Just Works», которая просто требует подтверждения (без паролей и т. Д.).

...