我希望我的问题类型不违反问题类型规则!
我正在编码一个蓝牙iOS应用程序以控制外围设备(蓝牙扬声器),我希望该应用程序仅识别一组独特的蓝牙模块(品牌)。
由于我首先要确定说话者是否是品牌的一部分,所以我不能依靠获得某些类型的服务,因为任何其他说话者也可以使用它们。我也不能依靠标识符名称,因为它非常肤浅并且易于更改。
我最接近的是UUID 32位十六进制数字的前16位代码,组织唯一标识符(OUI)。例如,在下面的图像中,将D42A8779-F905-BA72-80AA
的D42A8779-F905-BA72-80AA-3186A18D4453
用作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的一部分>