Android altbeacon 库 - 如何访问扫描 Beacon 的完整负载
Android altbeacon Library - How to access complete payload of scanned Beacon
如何使用 altbeacon 库访问 Scanned Beacon 的原始负载数据?
Android Beacon 库不是为此目的而设计的,因此执行您想要的操作的 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);
一般来说,这是一个无损过程,因为信标格式通常会用完有效载荷的每个字节。万一您有一个不使用所有字节的自定义信标格式,您需要稍微更改格式以在末尾添加额外的数据字段,以便将完整的有效负载解析到信标中。否则你将在转换中丢失这些额外的字节。
如何使用 altbeacon 库访问 Scanned Beacon 的原始负载数据?
Android Beacon 库不是为此目的而设计的,因此执行您想要的操作的 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);
一般来说,这是一个无损过程,因为信标格式通常会用完有效载荷的每个字节。万一您有一个不使用所有字节的自定义信标格式,您需要稍微更改格式以在末尾添加额外的数据字段,以便将完整的有效负载解析到信标中。否则你将在转换中丢失这些额外的字节。