android - Android altbeacon 库 - 如何访问扫描的 Beacon 的完整有效负载
问题描述
如何使用 altbeacon 库访问已扫描信标的原始有效负载数据?
解决方案
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);
一般来说,这是一个无损过程,因为信标格式通常会用完有效载荷的每个字节。万一您有一个不使用所有字节的自定义信标格式,您需要稍微更改格式以在末尾添加额外的数据字段,以便将完整的有效负载解析到信标中。否则,您将在转换中丢失这些额外的字节。
推荐阅读
- html - Angular 4:只要表单未验证,就禁用按钮
- java - RX Java - subscribeOn 和 observeOn 的不同行为
- c# - Bacnet/IP 与 .NET
- java - 注释的 AOP 在 Spring Boot 中不起作用
- html - 与媒体查询相同的边距
- ruby-on-rails - Rails,请求的资源上不存在“Access-Control-Allow-Origin”标头
- python - Tkinter 按钮不执行命令
- jasmine - 无法获取字段形式的 SVG 对象并移动它们
- java - 在 sqlite 数据库中搜索数据时出错
- javascript - Facebook Graph API 评论来自不可用