CoreBluetooth 外设标识符更改

CoreBluetooth peripheral identifier changes

我正在使用 CoreBluetooth 连接到我使用 BlueGiga BLE113 模块开发的许多相同的蓝牙秤。我的应用保留了每个秤 CBPeripheral.Identifier.UUIDString 的本地副本以及有关该物理秤的一些相关数据,因此我可以区分它们。例如。 "Scale A" 和 "Scale B"

我的麻烦是设备的 UUIDString 每隔一段时间就会发生变化。我可以针对一台设备开发几天,然后有一天 UUID 不同了。 phone.

上的体重秤尚未重置,应用程序尚未重启,蓝牙尚未循环

我需要一种方法来可靠地识别每个蓝牙外围设备(规模),我不想在生产过程中将标识符硬编码到每个设备中。

是否有更好的长期识​​别外围设备的方法?

不幸的是,我认为您无法绕过 iOS 外围 UUID 的更改。

根据您必须更改秤上 BLE services/characteristics 的控件,您可以宣传一项附加服务,其中包含您在其中放置自定义标识符的特征。

在 iOS 上,您可以扫描该服务并读取特征值以确定比例。 这样,您就不会依赖 OS 分配给外围设备的 UUID。

希望对您有所帮助!