如何使用altbeacon库访问Scand Beacon的原始有效载荷数据?
zhang374793162 回答:Android altbeacon库-如何访问已扫描信标的完整负载
Android信标库不是为此目的而设计的,因此执行所需操作的API有点尴尬。
检测到该库后,它将自动解析有效负载并将字节转换为信标对象。但是因为该库还支持传输,所以它具有实用程序,可将信标对象直接转换回字节。如果使用iBeacon,可以将检测到的信标转换回原始字节,如下所示:
BeaconParser iBeaconParser = new BeaconParser()
.setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24");
byte[] payloadBytes = iBeaconParser.getBeaconAdvertisementData(beacon);
通常,这是一个无损过程,因为信标格式通常会耗尽有效载荷的每个字节。万一您有一个不使用所有字节的自定义信标格式(不太可能发生),则需要稍稍更改格式以在末尾添加额外的数据字段,以便将完整的有效内容解析为信标。否则,您将在转换中丢失这些多余的字节。