2011-03-23 175 views
16


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

回答

17

当两台设备均为2.1或更高版本时,使用安全简单配对(SSP)而不是旧配对(传统配对是需要用户在两台设备上输入相同PIN以进行连接并且大多数情况下PIN曾经是众所周知的0000或1234的通用组合)

安全简单配对简化了流程,摆脱了输入PIN码的需要,相反它会自动生成6位密码作为配对过程的一部分,用户可能只需要验证/输入一个或多个设备上的密钥。

安全简单配对(SSP)进一步具有几种不同的关联模式,要使用的关联模型由试图配对的设备上的显示和输入功能决定。

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

其他关联模型是:

  • 数字比较 - 如果两个设备和用户上示出了6位数字被要求确认他们是否一样。当两个设备都有显示并且能够输入是/否时使用。密钥条目 - 当其中一个设备只具有输入能力且没有输出显示能力,另一个具有输出/显示能力时,此处用户将被要求在具有输入能力的设备上输入6位数字作为显示在支持显示的设备上。

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

+1

感谢您的回复。我知道这些关联模式。我想知道如何在建立连接时找出其中哪些正在使用。我试图连接与Desire相同的设备。当连接和连接成功时,它显示“Just works”模式。Nexus S不会发生这种情况。如何找出与Nexus S连接时发生了什么问题。 – Ashwini 2011-03-24 03:42:59

+0

欲望和Nexus S都是2.3.3吗?如果是,那么行为应该是相同的..不连接可能是因为别的东西 – 2011-03-24 04:11:41

+2

欲望是2.2和Nexus是2.3.3。我认为这是SDK错误,所以升级Nexus到2.3.3,但它在2.2上工作。那么它是蓝牙设备实现中的错误吗? – Ashwini 2011-03-25 10:00:04

4

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

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

它最明显的蓝牙2.1配对在你的情况和问题是在别处。