ios - 如何处理低功耗蓝牙 (BLE) 中的自定义 UUID

标签 ios bluetooth bluetooth-lowenergy core-bluetooth btle

我想编写一个 iOS 应用程序来将一些数据传输到嵌入式 BLE 模块,反之亦然。为了获得我的数据流的最佳结构,我使用相应的 UUID 创建了我自己的特征和服务。至此,一切正常!但是,如果我想添加第二个 BLE 模块而不更改我的嵌入式 BLE 模块中的硬编码 UUID,会发生什么情况?我是否必须为要添加的每个 BLE 模块生成全新的 UUID?在这种情况下,我也必须更改我的 iOS 应用程序,因为我必须针对特定服务和特征更改我预期的 UUID,或者?谢谢!

最佳答案

不,您不必为每个 BLE 模块生成新的 UUID。这不是它设计的运行方式。 只需确保您不会为同一 BLE 模块中的任何特性重复使用相同的 UUID。

经验法则:

  1. 我不能让 BLE 模块具有两个具有相同 UUID 的特征。
  2. 我不能让一个 BLE 模块包含两个具有相同 UUID 的服务。
  3. 我不能让一个 BLE 模块的 UUID 一次用于服务,而同一 UUID 用于特性。
  4. 理论上我绝对可以拥有无​​限数量的具有相同 GATT 结构(包括所有 UUID)的 BLE 模块。

这是可能的,因为 GATT 客户端(应用程序)通过连接句柄区分和访问连接的 GATT 服务器,这超出了连接到同一应用程序的其他 GATT 服务器的范围。

关于ios - 如何处理低功耗蓝牙 (BLE) 中的自定义 UUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32729853/

相关文章:

android - 可以连接到 BLE(BluetoothGattServer) 服务器的最大设备数 android

ios - 在 iOS 设备和蓝牙设备之间发送数据时是否始终需要使用蓝牙配置文件?

iOS 推送通知在开发中有效,但在生产中无效

ios - 如何在 TableviewController 中添加一个按钮?

iOS:Xib 文件 Interface Builder 中的顶部布局指南在哪里?

ios - 找到从给定索引开始的字符串的第一次出现

iphone - 当蓝牙连接到我的 iPhone 时唤醒应用程序?

android - 从 ListView 共享特定的 apk

android - Bluetooth LE 监听多种特性通知

android - samsung ble api 无法从多个 GATT 特性中获取通知