多个服务的 BLE 设备相同的 UUID

BLE Device same UUID for multiple services

参考 v4.0 第 3 卷 G 部分第 3.1 节

A device or higher level specification may have multiple service definitions and may have multiple service definitions with the same service UUID.

我正在为连接到特定外围设备的 iPhone(中央)做一些开发。 iPhone 连接的外围设备也在野外扫描信标(ADV_NONCONN_IND,而不是 iBeacon),并修改本地托管的 GATT 服务器以提供代表每个信标的服务.

我是否应该为每个在 GATT 服务器上表示为服务的信标随机生成一个 UUID?我知道规范说一个设备可以有多个具有相同 UUID 的服务定义,但我怀疑 iPhone API 是否能够区分同一 UUID 下有多个服务定义. (我担心核心蓝牙中的某种内部扁平化措施)

我猜唯一真实的方法是将一个简单的示例放在一起,看看 iPhone 是否会向我显示具有相同 UUID 的多个服务。在我们的例子中,UUID 只是另一个需要跟踪的唯一标识符,因为我们有很多其他属性可以作为索引依据。

如果有这方面的专家,我很想听听对此事的一些见解!这是一次学习尝试!

谢谢,

布莱斯·雅各布斯

具有相同UUID的服务在GATT服务器中可以通过不同的handle来区分。这些服务可以被视为服务类型的多个实例。