蓝牙使用 16 位、32 位和 128 位 UUID。当然,我可以自己生成 128 位 UUID。我可以从蓝牙 SIG 购买 16 位 UUID。
但是,我不知道从哪里获取 32 位 UUID。使用随机数可能会导致冲突。
赞赏启蒙。
正如 ukBaz 和 Risto 所说,32 位 UUID 也是由蓝牙 SIG 预先分配的。这可以在蓝牙核心规范 v5.4,第 1 卷,E 部分,第 2.6 节,分配的号码要求中找到:-
[第 3 卷] B 部分第 1 节中定义的所有 16 位和 32 位 UUID 2.5.1,被认为是分配的号码。所有其他 UUID 值都可以在允许 UUID 的任何上下文中使用,前提是它们是 根据 ITU-T Rec. 中的建议生成。 X.667(10/2012),也称为 ISO/IEC 9834.8:2014
这是上面引用的第 3 卷 B 部分第 2.5.1 节中的段落:-
UUID 是一个通用唯一标识符,预计 在所有空间和所有时间中都是唯一的(更准确地说,概率 独立生成的 UUID 相同的情况可以忽略不计)。 UUID 可以以分布式方式独立创建。无中央 需要注册分配的 UUID。 UUID 是一个 128 位值。
为了减轻存储和传输 128 位 UUID 值的负担, 已预先分配一系列 UUID 值以分配给 经常使用的、注册的用途。此预分配中的第一个 UUID 范围称为 Bluetooth_Base_UUID,其值为 00000000-0000-1000-8000-00805F9B34FB。 UUID 值在 预分配范围具有表示为 16 位或 32 位值。这些别名通常称为 16 位和 32 位 UUID, 但每个实际上代表一个 128 位 UUID 值。
一些参考:-