我使用listenUsingInsecureRfcommWithServiceRecord和createInsecureRfcommSocketToServiceRecord调用来连接一个安卓设备和另一个安卓设备。
在第一个设置中,我的Nexus One和Nexus S都运行Android 2.3.6 --在这个设置中,连接没有弹出“配对请求”对话框。
在第二个设置中,我用运行安卓2.3.3的三星Galaxy S2尝试了相同的Nexus One --在这个设置中,“配对请求”对话框在两个设备上都弹出了。这很奇怪,因为两个设备都在API级别10上,这应该支持不安全的连接。
有没有其他人碰到过这种奇怪的行为?有人能证实这是2.3.3中的问题吗,或者可能是我测试的特定模型中的问题?有什么变通方法吗?
如果有必要,我可以从logcat发布相关的部分。
发布于 2012-01-04 10:30:19
根据蓝牙v2.1,GAP,第5.2.2节:
当两个设备都支持安全简单配对时,GAP应默认要求未经验证的链路密钥并启用加密。
因此,要启用加密,蓝牙需要创建一个链接密钥...因此,需要进行SSP配对。
不知道在Android中是否有可能避免这种情况。
否则,处理身份验证事件并确认配对--配对很可能是"Just Works“表单,它只需要确认(没有密钥等)。
https://stackoverflow.com/questions/8672343
复制