CoreBluetooth 外设标识符更改

Mic*_*ael 4 bluetooth ios core-bluetooth bluegiga

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

我的麻烦是设备的 UUIDString 经常发生变化。我可以针对一台设备开发几天,然后有一天 UUID 会有所不同。体重秤尚未重置,应用程序尚未重新启动,手机上的蓝牙也尚未循环。

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

有没有更好的方法来长期识别外设?

小智 6

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

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

在 iOS 上,您可以扫描该服务并读取特征值来识别规模。这样,您就不会依赖操作系统分配给您的外围设备的 UUID。

希望这可以帮助!