[图片上传失败…(image-d5e4c6-1606809640424)]
一个广播包是由若干个广播单元 AD Structure 构成的。每个 AD Structure 的组成是:第一个字节表示长度值 length,表示接下来的 length 个字节是数据部分,数据部分的第一个字节表示数据的类型 AD Type,AD Type 决定了下面的数据代表了什么,关于每个数值代表的数据类型见官方文档,剩下的 length - 1 个字节表示真正的数据
02 01 06
02 表示接下来的数据有两个字节 01 表示数据类型,此处类型是 Flags 06 就是具体的数值了 0x06 = 0000 0110 每一位都有不同的含义,见官方文档

1a ff 4c 00 02 15 fd a5 06 93 a4 e2 4f b1 af cf c6 eb 07 64 78 25 27 11 4c b9 c5
1a 表示接下来的数据有 26 字节
FF 表示数据类型,此处类型是 厂商自定义数据类型(这里的厂商指的是苹果公司,因为 iBeacon 是苹果公司提出的)
4C 00 表示公司的 ID,此处的 004C 代表苹果公司
02 15 Beacon 的标识位,必须是这样的
fd a5 06 93 a4 e2 4f b1 af cf c6 eb 07 64 78 25
表示 Beacon UUID
27 11 是 major 的值
4C b9 是 minor 的值
C5 表示 Measured Power 表示的是此设备在 1 米处的 RSSI 值,用于距离测算
这段内容其实主要是苹果公司在蓝牙协议的基础上定义的。
如果符合 1AFF4C000215

本文主要介绍了Android蓝牙开发的基础知识,包括蓝牙广播包的结构解析,Android中接收广播包的方式,以及如何从ScanResult中获取关键信息。在蓝牙应答包中,详细解析了Service Data和Tx Power Level等内容,帮助开发者理解蓝牙数据包的构成。同时,讨论了Android客户端如何处理广播包,并指出在面试中关注的关键方法。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



