gpt4 book ai didi

java - AltBeacon getIdentifier 返回错误值

转载 作者:行者123 更新时间:2023-12-02 03:47:55 25 4
gpt4 key购买 nike

我的代码或信标返回“错误”值(用引号引起来,因为这很可能是我的代码中的错误)有问题。我一直在阅读信标,据我所知,我可以给我的信标 3 个标识符。我已将信标的标识符配置为 000000000000001234(很多 0,以 1234 结尾),0001 表示主要标识符,0002 表示次要标识符。

这是我在测距信标时使用的一些代码:

String id1 = beacon.getId1().toString(); 
String id2 = beacon.getId2().toString();
String id3 = beacon.getId3().toString();

我假设这些代表我在信标中拥有的标识符,但我得到的 id1 值是“0x02676f6f2e67c...”,而 id2 和 id3 为空。我完全不好吗?

也许我使用了错误的解析器? (我在信标客户支持的邮件中收到了此信息,尽管我没有指定我想要使用标识符)

.setBeaconLayout("s:0-1=feaa,m:2-2=10,p:3-3:-41,i:4-20v"));

我必须承认,我不太明白信标解析器是否取决于我想要如何解码我的信标,或者取决于我拥有什么样的信标,或者甚至两者都有。

郑重声明,我使用的是 Android,但我认为这无关紧要。

最佳答案

几点:

  • 有几种流行的信标格式,每种格式都传输不同数量的标识符和不同的标识符长度。 AltBeacon和iBeacon分别发送16、2和2字节的三个标识符。 Eddystone-UID 发送两个分别为 10 和 6 字节的标识符。 Eddystone-URL 发送长度在 1-17 字节之间可变的单个标识符。

  • 问题没有说明正在传输什么信标格式。听起来它应该是 iBeacon 或 AltBeacon,因为这些格式具有三部分标识符(有时称为 ProximityUUID,主要和次要)。但这些格式的第一个标识符是 16 字节的 UUID,示例显示的标识符如下:000000000000001234,如果以十六进制显示,则可能是 9 个字节,如果以十进制表示,则可能是未知的字节数。

  • 显示的信标布局字符串(“s:0-1=feaa,m:2-2=10,p:3-3:-41,i:4-20v”)适用于 Eddystone-URL ,这是一种具有单个可变长度标识符的格式,可以使用自定义压缩算法将其转换为 URL 字符串。

  • 使用单个标识符(ID2 和 ID3 为空)检测到的信标可能是 Eddystone-URL 传输。部分显示的 ID1 0x02676f6f2e67c...相当于“http://goo.g”的 URL...

结论:

  • 正在检测的信标可能不是您想要检测的信标。

  • 您附近可能有多个传输信标,或者一个信标发出不同类型的多个传输,这就是您检测 Eddystone-URL 信标的原因。

  • 您想要检测的信标传输可能不是 Eddystone-URL 格式,因此您可能需要一个不同的 BeaconParser。您需要首先弄清楚格式,以便添加正确的 BeaconParser。

关于java - AltBeacon getIdentifier 返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36151000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com