什么可以用作特定制造商的一组蓝牙模块的唯一标识符?

What can be used as a unique identifier for a set of bluetooth modules from a specific manufacturer?

希望我的题型没有违反题型规则!

我正在编写蓝牙 iOS 应用程序来控制外围设备(蓝牙扬声器),我希望该应用程序仅识别一组独特的蓝牙模块(品牌)。

由于我首先要确定扬声器是否属于该品牌,因此我不能依赖于选择某些类型的服务,因为任何其他扬声器也可能拥有这些服务。我也不能依赖标识符名称,因为它非常肤浅且容易更改。

最接近的是UUID 32位十六进制数字的前16位代码,组织唯一标识符(OUI)。例如在下图中,使用 D42A8779-F905-BA72-80AA-3186A18D4453D42A8779-F905-BA72-80AA 作为 brand 外围设备标识符是好的做法吗?

如果没有,我还能依靠什么?

CBPeripheral 的标识符对于扫描它的 iOS 设备是唯一的。不是蓝牙外设本身发送的https://developer.apple.com/documentation/corebluetooth/cbpeer/1620687-identifier

当然,如果您想要做的不仅仅是音频,那么其中一项服务 UUID 将是该设备唯一的吗?

您也许还可以通过查看广告数据来识别,特别是制造商数据:https://developer.apple.com/documentation/corebluetooth/cbadvertisementdatamanufacturerdatakey

这是 CBCentralManagerDelegate didDiscover 回调的一部分 https://developer.apple.com/documentation/corebluetooth/cbcentralmanagerdelegate/1518937-centralmanager