一种唯一识别BTLE设备的方法

6

有没有一种方法可以唯一地识别BTLE设备(例如硬件ID)?我有两个硬件BTLE设备和两个软件BTLE设备(使用CBCentralManager)。所有这些设备都发送相同的UUID。

当所有设备都靠近我的时候,我想识别出确切的BTLE设备。有什么线索吗?


很有趣看到这个问题的答案。我正在使用BTLE作为设备的“串行端口电缆替代品”。一旦我确定设备在centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral中发送了我的UUID……然后我连接它并发送一个虚拟串行端口命令来查找它的设备ID(我们在该机器的微控制器中发送的变量)。然后,我将iOS分配给设备的CBPeripheral UUID与我们的设备ID进行匹配。 - David Rinck
请参考此链接:https://dev59.com/sWjWa4cB1Zd3GeqPtLJB - novis
1个回答

2
这些设备应该具有唯一的蓝牙地址。如果没有,它们将会相互干扰,您将无法正确地连接它们。然而,使用BTLE,设备可以拥有一个随机化的地址以保护隐私(但是这些地址遵循特定的模式,因此您可以检测到是否获得了这种类型的地址)。该地址由6个字节组成,通常以十六进制显示(例如A1-B2-C3-D4-E5-F6)。前两个字节通常表示制造商。
更新:我的回答适用于大多数BLE用法,但由于问题标记为,您可能想查看关于在iOS上获取唯一ID的其他答案作为获取蓝牙地址的可能方式。

2
更重要的是,对于在这里提出的问题,尽管BTLE设备应该具有(通常)唯一的地址,但iOS拒绝向应用程序揭示此信息,而是将其隐藏在由手机分配的临时标识符后面,这些标识符没有已知的映射到它们所代表的设备的实际属性。 - Chris Stratton
通常情况下,前三个字节表示制造商(设备或芯片)的公共地址,但该地址也可以是随机的(静态或私有)。 - calandoa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接