1. UUID
广播数据中,一般会包含一个UUID列表,用以展示自己支持的服务。但是GAP和GATT服务的UUID不能加到广播中。广播包中可以根据自身情况包含一部分服务的UUID或者包含所有服务的UUID。部分服务的UUID列表和完整的UUID列表只能包含一个。
什么情况下包含部分UUID?
- 广播数据无法容纳全部服务的UUID;
- 设备不想在广播阶段对外展示所有的服务;
- 蓝牙核心规范中定义的UUID格式如下:
UUID是什么:
UUID(通用唯一识别码:universally unique Identifier)是一个128位的数字,用来标志属性的类型.服务也是一种属性,当然要用UUID来表示.
- 既然UUID是128位,为什么有时候使用16位,原因是128位太长,使用16位可以提高传输效率.蓝牙协议定义一个UUID基数,配合16位数使用,二者仍然遵循唯一识别码的分配规则,接收方收到后,补上UUID基数即可.
- UUID 分标准UUID和厂商自定义的UUID
- 标准UUID由SIG发布,由UUID基数 + 16位UUID组成.如心率服务的UUID是0x180D;
- 厂商自定义UUID,同样采用UUID基数 + 16位UUID组成,由厂商定义,如串口服务UUID = 0x0001,使用的UUID基数是:6E400001-B5A3-F393-E0A9-E50E24DCCA9E.
2. 加入服务UUID的步骤:
1. 定义UUID数组并初始化;
2. 配置广播初始化结构体中如何包含UUID数组(是包含全部的UUID还是部分的UUID);
3. 调用广播初始化函数,完成初始化.