我有一个Eddystone,我想获得加速度计值,但我不知道如何继续......我看到我们可以从灯塔获取数据
beacon.getExtraDataFields()
但在我的情况下,即使我在Eddistone中激活加速度计发射,返回的值也是空的 所以我看到了这篇文章:Getting packet data transferred from iBeacon android
但是我的返回值是这样的:c03be53而我不知道这意味着什么...... 你能帮我检索一下加速器数据吗?
这是我的代码:
ArrayList<BeaconParser> beaconParsers = new ArrayList<BeaconParser>();
beaconParsers.add(new BeaconParser().setBeaconLayout(EDDYSTONE_UID_LAYOUT));
Beacon beacon = null;
for (BeaconParser parser : beaconParsers) {
beacon = parser.fromScanData(scanRecord,
rssi, device);
if (beacon != null) {
if (beacon.getServiceUuid() == 0xfeaa) {
// This is Eddystone, which uses a service Uuid of 0xfeaa
Identifier eddystoneNamespaceId = beacon.getId1();
Identifier eddystoneInstanceId = beacon.getId2();
WirelessDevice wirelessDevice = new WirelessDevice(null, beacon.getRssi(), null, eddystoneNamespaceId.toString());
mainActivity.addDevice(wirelessDevice);
byte[] bytes = parser.getBeaconAdvertisementData(beacon);
感谢&#39; S
答案 0 :(得分:0)
没有标准方法可以将加速度计数据与包括Eddystone-TLM在内的任何Eddystone格式进行通信。 Eddystone-TLM包括信标温度的字段,但不包括加速度计读数。
在问题下面的评论链接的BNBeacon的文件只提到加速度计在此声明:“Intègre未accéléromètre,联合国vibreur等未蜂鸣器90分贝”上有加速度计做什么没有文档(也许它只是触发灯塔打开?),或者即使其传感器输出完全暴露。输出可能以某种方式以非标准方式编码到标准信标字段中。但没有进一步的制造商文档,这只是猜想。 如何访问加速度计数据可能是制造商必须回答的问题。
parser.getBeaconAdvertisementData(beacon);
只会返回信标数据包的原始字节。 设计用于信标发射器,而不是用于一般数据访问。 使用其中一个已解析的字段可以更轻松地访问相同的信息,例如beacon.getId1()
,beacon.getId2()
,beacon.getDataFields().get(0)
等。后一种访问方法可让您访问信标布局的解析字段。