一、UUID 的规范
1. Bluetooth SIG 官方定义(标准 UUID)
由 Bluetooth SIG 统一分配和维护,具有互操作性。
特点:
16-bit UUID(常见)
所有设备、系统(Android / iOS / Windows)都内置识别
强烈建议:通用功能优先使用标准 UUID
下面是已分配的 UUID 文档
https://www.bluetooth.com/specifications/assigned-numbers/
2. 厂商 / 项目自定义 UUID(Vendor Specific)
特点:
128-bit UUID
不被系统“语义识别”
适合:
私有协议
创新功能
框架级抽象
二、蓝牙 UUID 的基础结构
1. 蓝牙 Base UUID
所有 16-bit / 32-bit UUID,本质上都嵌入到这个基准中:
0000XXXX-0000-1000-8000-00805F9B34FB例如:
三、常用 Service UUID(SIG 标准)
1. 设备信息 / 系统级(强烈建议使用)
2. 传感器类(非常常用)
3. 控制 / 输入类
4. 数据传输类
四、常用 Characteristic UUID(配套使用)
1. Device Information(0x180A)下的标准特征
2. Battery Service(0x180F)
3. Temperature Service(0x1809)
五、自定义 UUID 的工程级约定
1. 推荐的 128-bit UUID 模板
XXXXXXXX-YYYY-ZZZZ-AAAA-BBBBBBBBBBBB
推荐做法:
ARTOS-SSSS-TTTT-CCCC-XXXXXXXXXXXX
示例:
f0a00001-0001-4000-8000-artos0000001
(实际使用必须是十六进制)
2. 推荐的字段语义划分
3. 风格示例(建议)
Service UUID:
A7100001-0000-4000-8000-ARTOS000000
Characteristic:
A7100001-0001-4000-8000-ARTOS000001
A7100001-0002-4000-8000-ARTOS000002
这样可以做到:
UUID 一眼可分组
程序可自动生成
可与 Sensor ID / 模块 ID 对齐
六、什么时候“必须”用标准 UUID?
必须或强烈建议:
Battery、电量
Device Information
标准传感器(温度、湿度)
HID / 心率 / 医疗
原因:
手机系统 UI 可直接识别
第三方 App 免适配
七、什么时候“应该”用自定义 UUID?
私有协议
框架级抽象
命令 / 控制通道
多功能复合设备