核心蓝牙外围设备标识符更改



我正在使用CoreBluetooth连接到我使用BlueGiga BLE113模块开发的许多相同的蓝牙秤。我的应用程序保存了每个天平的CBPeripheral.Identifier.UIDString的本地副本,以及关于该物理天平的一些相关数据,这样我就可以区分它们。例如"天平A"one_answers"天平B"

我的问题是,设备的UUIDString每隔一段时间就会发生变化。我可以针对一个设备开发几天,然后有一天UUID就不一样了。天平还没有重置,应用程序还没有重新启动,蓝牙也没有在手机上循环。

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

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

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

根据您必须更改秤上BLE服务/特征的控制,您可以宣传一个额外的服务,该服务包含您在其中放入自定义标识符的特征。

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

希望这能有所帮助!

最新更新