什么是 URIBeacon 的 BeaconLayout?

What is the BeaconLayout for URIBeacon?

我正在尝试检测(Eddystone 之前)uri-beacon using the android-beacon-library, but it's not clear to me how the transform the uri-beacon spec into a BeaconLayout 字符串。

比较example EddyStone strings to the EddyStone spec也是一头雾水。字节偏移量似乎不匹配。我一定是遗漏了一些重要的东西。

根据最新规范 here,您可以使用以下内容解码 Eddystone 之前的 URI 信标:

beaconManager.getBeaconParsers().add(new BeaconParser().
setBeaconLayout("s:0-1=fed8,m:2-2=00,p:3-3:-41,i:4-21v"));

重要提示:我自己没有测试过,而且由于我无法访问原始 URI 信标,所以我不能保证它会起作用。如果您确实检测到具有此布局的信标,则需要将标识符解码为 URL,如下所示:

String url = UrlBeaconUrlCompressor.uncompress(beacon.getId1().toByteArray());

上述解压缩方法不适用于 urn:uuid: 原始 URI 信标格式的方案,但它会解压缩常规 URLs。

您可以在此处阅读有关使用 URL 信标与 Android 信标库的更多信息:https://altbeacon.github.io/android-beacon-library/eddystone-how-to.html

如果您确实使此工作正常,请通过接受此答案或在下方发表评论来确认布局。然后我可以将布局添加到库的内置常量和文档中。

完全披露:我是 Android Beacon Library 开源项目的首席开发人员。