Android BLE iBeacon广告包大于预期

时间:2016-11-29 00:54:02

标签: bluetooth-lowenergy ibeacon android-bluetooth android-ble rxandroidble

考虑到设备RSSI和校准传输功率,我试图获得BLE设备的估计范围。

校准的txPower应该作为外围设备iBeacon广告包中的最后一个字节发出。根据我发现的文档,这些数据包的长度应为30个字节。

但是,数据包的返回byte[]长度为62个字节。因此,广告数据的格式是未知的。

为什么会发生这种情况,有没有办法解密62字节数据包的格式?

1 个答案:

答案 0 :(得分:0)

扫描BLE设备时, Android API不仅返回原始广告PDU的字节,还返回扫描响应PDU。后者在字节数组中固定到前者的末尾由扫描API返回。

出于这个原因,如果字节数组访问信标字段,则无法可靠地使用结尾的负偏移量。使用从头开始的正偏移更可靠,但如果在制造商广告PDU(您关注的那个)之前插入了异常PDU,即使这样也会失败。

对于100%的可靠性,您必须解析所有PDU,找到制造商广告一,然后查看其中的字节。在撰写Android Beacon Library时,我学到了很多东西。它是开源的,所以即使您想要自己进行扫描,最好还是看看它是如何做到的。