【发布时间】: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