Краткий ответ: Когда я отправляю файлы между устройствами с OBEX, мне почти никогда не предлагается выполнить сопряжение, поэтому это, безусловно, возможно.
1) Каждое приложение и само устройство могут быть настроены на режимы аутентификации «нуждаются / не нужны», поэтому часто не было необходимости в сопряжении. Например, большинству серверов OBEX (OPP) вообще не требуется проверка подлинности, поэтому нет необходимости в сопряжении / соединении.
Предположительно, ответ "Wireless Designs" охватывал этот случай.
2) Тогда, если устройство / приложение потребовало сопряжения:
2.1) До v2.1 для сопряжения тогда два устройства должны были иметь соответствующие парольные фразы / PIN-коды. Так что это либо требовало участия пользователя (для ввода ПИН-кодов), либо знаний в программном обеспечении, чтобы узнать ПИН-код: либо определенный в приложении if pin callback send pin="1234"
, либо ум в ОС, такой как BlueZ и Win7 (см. Слайд 20 на моем Bluetooth в Windows 7 doc ), которая имеет такую логику: if(remotedevice=headset) then expectedPin ="0000"
. Не знаю, что делает Android
2.2) В v2.1 было добавлено безопасное простое соединение (SSP). Что меняет сопряжение на:
if (either is pre-v2.1) then
Legacy
else if (Out-Of-Band channel) then
OutOfBand
else if (neither have "Man-in-the-Middle Protection Required") then
(i.e. both have "Man-in-the-Middle Protection _Not_ Required")
Just-Works
else
Depending on the two devices' "IO Capabilities", either NumericComparison or Passkey.
Passkey is used when one device has KeyboardOnly -- and the peer device _isn't_ NoInputNoOutput.
endif
Из 32feet.NET руководство пользователя BluetoothWin32Authentication , см. Также разделы SSP в [ 1 ]
Таким образом, для того, чтобы спаривание было беспрепятственным, необходимо либо JustWorks, либо Out-of-Band, например, ваше предложение NFC.
Надеюсь, это поможет ...