我想编写一个 iOS 应用程序来将一些数据传输到嵌入式 BLE 模块,反之亦然。为了获得我的数据流的最佳结构,我使用相应的 UUID 创建了我自己的特征和服务。至此,一切正常!但是,如果我想添加第二个 BLE 模块而不更改我的嵌入式 BLE 模块中的硬编码 UUID,会发生什么情况?我是否必须为要添加的每个 BLE 模块生成全新的 UUID?在这种情况下,我也必须更改我的 iOS 应用程序,因为我必须针对特定服务和特征更改我预期的 UUID,或者?谢谢!
最佳答案
不,您不必为每个 BLE 模块生成新的 UUID。这不是它设计的运行方式。 只需确保您不会为同一 BLE 模块中的任何特性重复使用相同的 UUID。
经验法则:
- 我不能让 BLE 模块具有两个具有相同 UUID 的特征。
- 我不能让一个 BLE 模块包含两个具有相同 UUID 的服务。
- 我不能让一个 BLE 模块的 UUID 一次用于服务,而同一 UUID 用于特性。
- 理论上我绝对可以拥有无限数量的具有相同 GATT 结构(包括所有 UUID)的 BLE 模块。
这是可能的,因为 GATT 客户端(应用程序)通过连接句柄区分和访问连接的 GATT 服务器,这超出了连接到同一应用程序的其他 GATT 服务器的范围。
关于ios - 如何处理低功耗蓝牙 (BLE) 中的自定义 UUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32729853/