即使使用新的解析器更新了信标管理器之后,扫描过滤器仍在使用旧的信标解析器并且解析失败。
旧的信标解析器是
beaconParserList: altbeacon, m:2-3=beac,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25
设置新的信标解析器
beaconManager.getBeaconParsers().clear();
BeaconParser beaconParser = new BeaconParser().setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25");
beaconManager.getBeaconParsers().add(beaconParser);
在Alt-Beacon库上启用调试后扫描结果
D/BeaconParser: Processing pdu type FF: 0201061aff4c000215fb7dd88a496f42c49f4a382d8258b4ee03e8044ec41e09354141413d6d536d21366534563b74395a3d42497b2a4d6e417166474800 with startIndex: 5, endIndex: 29
D/BeaconParser: This is not a matching Beacon advertisement. (Was expecting be ac. The bytes I see are: 0201061aff4c000215fb7dd88a496f42c49f4a382d8258b4ee03e8044ec41e09354141413d6d536d21366534563b74395a3d42497b2a4d6e417166474800
答案 0 :(得分:0)
如果之后修改信标解析器,则通过调用beaconManager.bind()
或构造RegionBootrap(...)
开始扫描,那么您需要使用beaconManager.applySettings()
手动应用所做的更改< / p>
虽然上述方法可行,但通常将设置信标解析器的代码移到开始扫描的代码上方通常会更容易。