我在玩Eddystone信标,在注册的时候撞到了墙上。
我购买的信标供应商提供了一个应用程序,允许您从信标读取以下数据:
Eddystone-UID:
艾比肯/阿尔特比肯:
考虑到这些信息,在使用Eddystone注册信标时,应该使用什么来创建AdvertisedId?
谢谢!
发布于 2015-09-23 17:12:17
谷歌有一个示例Android应用程序,可以让你在后台注册信标。您可以看到调用registerBeacon 这里的代码。
实际的注册过程将JSON发布到谷歌的服务器上,JSON生成来自于这个项目中的com.google.sample.beaconservice.Beacon类这里。
如果您查看该行,您将看到它将标识符从字节数组转换为基64,使用:
JSONObject advertisedId = new JSONObject()
.put("type", type)
.put("id", Utils.base64Encode(id));因此,对于10字节命名空间为0x010203040506070809的Eddystone UID和0x0a0a0b0c0d0e0f的6个字节实例,您可以将64基编码如下所示的标识符:
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);发布于 2015-11-18 01:25:21
语法是eddystone namespace id+instanceid。这就是如何生成广告中的id
encodeBase64(HexToBinary(eddystone namespace id+instanceid))
https://stackoverflow.com/questions/32686388
复制相似问题