【问题标题】:Creating an insecure RFCOMM socket still requires pairing创建不安全的 RFCOMM 套接字仍然需要配对
【发布时间】:2012-01-30 03:15:57
【问题描述】:

我正在使用 listenUsingInsecureRfcommWithServiceRecord 和 createInsecureRfcommSocketToServiceRecord 调用以便连接 一台 Android 设备到另一台。

在第一个设置中,我有一个 Nexus One 和一个 Nexus S 都在运行 Android 2.3.6 - 在此设置下,连接没有弹出“配对 请求”对话框。

在第二个设置中,我尝试了与三星 Galaxy 相同的 Nexus One S2 运行 Android 2.3.3 - 在此设置“配对请求” 对话框确实在两个设备上弹出。这很奇怪,因为两个设备都打开了 API 级别 10,应该支持不安全的连接。

有没有其他人遇到过这种奇怪的行为?有人可以验证 这是 2.3.3 中的问题,或者可能是我的特定模型中的问题 测试?有什么解决办法吗?

如有必要,我可以从 logcat 中发布相关部分。

【问题讨论】:

  • 你知道2台设备的蓝牙版本吗
  • 据我所知,Nexus 1 有 2.1,Galaxy S2 有 3.0。
  • 请注意,在同一个 API 级别内,Android 版本之间会发生很多变化(这就是这些版本之间的意义所在)。例如,在 Android 2.3.5 之前,您只能启用 120 秒的可见性,而不是永久启用。我想配对要求可能是这些改变的事情之一。
  • 这个错误也出现在带有 2.3.3 的 Galaxy Ace 上,并且似乎在 Galaxy Ace 更新到 2.3.6 后得到修复。

标签: android sockets bluetooth rfcomm insecure-connection


【解决方案1】:

根据蓝牙 v2.1,GAP,第 5.2.2 节:

当两个设备都支持安全简单配对时,GAP 应默认要求 未经身份验证的链接密钥并启用加密。

所以要启用加密蓝牙需要创建一个链接密钥......因此需要 SSP 配对。

不知道在 Android 中是否可以避免这种情况。

否则处理身份验证事件并确认配对 - 配对很可能是只需要确认的“Just Works”表单(无需密码等)。

【讨论】:

    猜你喜欢
    • 2011-07-15
    • 2013-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-18
    • 2016-11-07
    • 2014-08-05
    • 1970-01-01
    相关资源
    最近更新 更多