将两个具有相同UUID的BLE设备配对(使用核心蓝牙)



我有两个具有相同UUIDBLE devices。有没有任何方法可以连接到它们,使它们同时连接?

现在,我甚至无法使用bluetooth explorer同时看到两个设备,所以我认为对于系统来说,它们看起来只是一个设备。这还有可能吗?

我假设UUID是指设备的MAC地址(蓝牙地址)。UUID通常用于服务和特性。

所有连接过程都以蓝牙地址为主要参数。因此,具有相同地址的两个设备将被视为同一设备。(事实上,蓝牙设备的MAC地址应该是唯一的,这是一个常见的要求,正是因为这个原因。)

因此,不可能同时连接到具有相同地址的两个设备。(*)

您可以在《蓝牙核心规范》第3卷C部分第9.3.5-9.3.8章中找到有关如何进行连接的更多信息。

(*)这是指连接到两个不同设备的常见方式。由于传入消息在链路层级别上无法区分具有相同地址的两个设备(您的控件总是认为只有一个设备具有给定地址),因此您可能会混淆这一事实,尤其是在未加密的连接中(由于加密是在设备对设备的基础上协商的,因此另一个设备无法加入加密的连接,即使它具有相同的蓝牙地址)。但绝对不建议这样做。

如果两个设备具有相同的UUID,那么我认为它们将被视为单个设备。我的建议是,向UUID发送触发通知,并检查哪个设备将首先响应。其次,尝试向相距甚远的设备发送通知。离你的智能手机/蓝牙浏览器越近,就会首先收到通知。蓝牙是在距离的基础上工作的,靠近源的设备会比另一个设备收到通知。我对Beacons也做过同样的尝试,但最终还是和你一样。

最新更新