Android蓝牙配对

任何人都可以告诉我如何找出连接到其他设备时使用的手机配对技术?
我有一个Nexus S(Android 2.3.3)和一个BT设备(蓝牙2.1 + EDR)。
当我尝试将它们配对时,我不必提供任何input(密钥)。 由于两个设备都有蓝牙2.1,我想知道他们使用哪种配对技术。
我们可以指定手机的配对技巧吗?

  • 通过蓝牙从Java Server发送文本到Android客户端
  • 通过蓝牙打印机Android打印PDF文件
  • 如何在Android中创build不安全的RFCOMM套接字?
  • Arduino +蓝牙模块+ Android
  • 用蓝牙耳机启动VoiceVcognition不起作用
  • 订阅BLE GAT通知Android
  • 如何使用android蓝牙接收串行数据
  • BluetoothSocket.connect()抛出exception“读取失败”
  • 当两台设备均为2.1及更高版本时,使用安全简单配对(SSP)而不是传统配对(传统配对是需要用户在两台设备上input相同PIN以进行连接的设备,而大多数情况下,已知的0000或1234的通用组合)

    安全的简单配对简化了过程,摆脱了inputPIN的需要,而是在配对过程中自动生成6位密码,用户只需要validation/input一个或多个设备的密码。

    安全简单配对(SSP)进一步具有几个不同的关联模式,并且要使用的关联模型由试图配对的设备上的显示和input能力来确定。

    当没有显示或input在其中一个设备上input6位数字时,则使用“Just works”关联模型,在配对期间不需要用户input。 在Android中,当使用createInsecureRfcommSocketToServiceRecord()API时,强制这个模型是SPP应用程序。 当与耳机,其他小型设备没有任何显示或input能力配对时,这个模型通常被使用

    其他关联模型是:

    • 数字比较 – 在​​两台设备上都显示一个6位数字的号码,用户被要求确认是否相同。 当两个设备都有显示并且能够input是/否时使用。

    • 密码input – 当其中一个设备只有input能力,没有输出显示能力,另一个具有输出/显示能力时,在这里,用户将被要求在能够显示input的设备上input6位数字设备。

    • 带外 – 设备通过不同的频道(除了蓝牙)交换配对信息,例如NFC或其他安全机制。

    您可以嗅探蓝牙stream量或logging日志以确定正在使用哪种技术。 在Nexus-S $ adb shell中,hcidump -XVt会显示日志。 如果I / Ofunction正在交换比其蓝牙2.1配对。

    另一种方法是启用init.herring.rc文件中的bluetoothd日志,您可以确定使用哪种配对方法。

    其中最明确的蓝牙2.1配对在你的情况和问题是在别处。