【问题标题】:Android & Dual mode Bluetooth device: Custom BLE service not found when paired to BR/EDR (Classic)Android 和双模蓝牙设备:与 BR/EDR(经典)配对时未找到自定义 BLE 服务
【发布时间】:2018-08-09 16:29:13
【问题描述】:

我使用 Silicon Labs 的 BT 121 构建了双模蓝牙设备。该设备通过经典连接实现 SPP。经典节点的设备名称为“XYZ Classic”。它还在 BLE 中实现了自定义服务(128 位 UUID)。 BLE节点的设备名称是“XYZ_BLE”。两个节点的 MAC 地址相同。

在“蓝牙”设置下配对时,有时我会看到“XYZ Classic”,有时会看到“XYZ_BLE”。它将与哪一个配对似乎是随机的,但我测试过的许多 Android 设备都倾向于与经典节点配对。配对后,通过经典/SPP 的连接始终有效。但是,如果与 BLE 节点配对,我只能连接到自定义服务。如果与经典配对,我可以看到非自定义 BLE 服务,但看不到我的自定义服务。总结一下:

Function     Classic Pairing     BLE Pairing
Spp          Works               Works
Cust BLE     Doesn't Work        Works 

当我在代码 (Android) 中配对时,尽管我搜索名为“XYZ_BLE”的设备然后与返回的设备配对,但问题也会发生。我已经看过,但我看不到强制 Android 与 BLE 节点配对的方法。

到目前为止,我唯一的解决方法是修改我的 BT 121 固件以不允许在经典模式下绑定。这不是一个理想的解决方案,因为任何仅限蓝牙经典的设备都无法与我的设备绑定(实际上这可能不是什么大问题,但我拥有一台只有蓝牙经典的平板电脑)。

应该注意的是,我已使用 Play 商店中的“BLE 扫描仪”来验证我的自定义服务是否工作/不工作,具体取决于配对模式。换句话说,这不仅仅是我的代码。 :)

那么,有人对如何强制 Android 与 BLE 节点配对有任何想法吗?

【问题讨论】:

    标签: android bluetooth bluetooth-lowenergy pairing


    【解决方案1】:

    我看到了类似的问题。一些提示:

    Android 行为因您在 BLE 广告中设置的位标志而异。例如,有一点叫做“不支持 br/edr”左右。还有一些位明确表示支持 br/edr 双重角色。

    如果您访问从 ble 应用返回“未验证错误”的特征,也可能会强制执行 ble 配对。至少在iohone上,操作系统会自动启动ble配对。

    【讨论】:

      猜你喜欢
      • 2021-10-09
      • 1970-01-01
      • 2014-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-19
      • 2015-08-19
      • 2021-10-27
      相关资源
      最近更新 更多