首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是Eddystone AdvertisedId?

什么是Eddystone AdvertisedId?
EN

Stack Overflow用户
提问于 2015-09-21 02:11:09
回答 2查看 744关注 0票数 1

我在玩Eddystone信标,在注册的时候撞到了墙上。

我购买的信标供应商提供了一个应用程序,允许您从信标读取以下数据:

Eddystone-UID:

  • 命名空间: 2F234454F4911BA9FFA6
  • 实例ID: 1
  • 在0米处测量的功率:-20

艾比肯/阿尔特比肯:

  • UUID: 41f037b6-f49d-4379-8350-e209ea4eadd1
  • 主修:0
  • 未成年人:1
  • 1米测量功率:-61

考虑到这些信息,在使用Eddystone注册信标时,应该使用什么来创建AdvertisedId?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-23 17:12:17

谷歌有一个示例Android应用程序,可以让你在后台注册信标。您可以看到调用registerBeacon 这里的代码。

实际的注册过程将JSON发布到谷歌的服务器上,JSON生成来自于这个项目中的com.google.sample.beaconservice.Beacon这里。

如果您查看该行,您将看到它将标识符从字节数组转换为基64,使用:

代码语言:javascript
复制
JSONObject advertisedId = new JSONObject()
    .put("type", type)
    .put("id", Utils.base64Encode(id));

因此,对于10字节命名空间为0x010203040506070809的Eddystone UID和0x0a0a0b0c0d0e0f的6个字节实例,您可以将64基编码如下所示的标识符:

代码语言:javascript
复制
byte[] eddystoneBeaconId = new byte[] {(byte) 0x01, (byte) 0x02, (byte) 0x03, (byte) 0x04, (byte) 0x05, (byte) 0x06, (byte) 0x07, (byte) 0x08, (byte) 0x09, (byte) 0x01a (byte) 0x0b, (byte) 0x0c, (byte) 0x0d, (byte) 0x0e, (byte) 0x0f };
String base64EncodedEddystoneBeaconId = android.util.Base64.encodeToString(id, android.util.Base64.DEFAULT);
票数 2
EN

Stack Overflow用户

发布于 2015-11-18 01:25:21

语法是eddystone namespace id+instanceid。这就是如何生成广告中的id

encodeBase64(HexToBinary(eddystone namespace id+instanceid))

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32686388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档