Android低功耗蓝牙总结,我的头条面试经历分享

想要搞清楚这个问题,首先我们要明白 iBeacon 向外发送的最原始的广播包是什么样的?

首先我们要搞清楚一点,蓝牙在向外发送数据的时候是分成两个部分的一个就是普通的广播包还有一个叫做应答包。这是蓝牙协议的规定内容,针对于所有的蓝牙设备(iBeacon 只是蓝牙设备的一种)

  • 普通的广播包格式是定义好的,长度为 30 byte

  • 应答包中的内容是可以由 蓝牙的各个制造厂商自己向里面放数据的。最大长度是 32 byte

需要注意的是,发送数据是从低位到高位一次发送,所以接收到的数据要返回来按字节拼接,例如接收到的MAC为 8b 03 00 b0 01 c2,那么实际的MAC为 c2:01:b0:00:03:8b

蓝牙广播包

首先我们来看一下第一个蓝牙广播包(来自 iBeacon 设备),一共 59 个字节

04 3e 38 0d 01 13 00 01 8b 03 00 b0 01 c2 01 00 ff 7f af 00 00 00 00 00 00 00 00 00 1e 29个字节

02 01 06 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 30个字节

第一行的内容可以认为是蓝牙广播包中的附带信息,通过 Android SDK 是没法看到的,第二行是对应我们 Android SDK 中收到的广播包中的前一部分。

第一个字节是HCI Packet Type,04表示这是HCI Event;剩下的58bytes则

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值