使用Proximity Beacon API注册信标似乎很简单,但我无法使用Nearby Messages API(已注册的信标,添加的附件,使用消息API订阅)接收任何消息。
我认为我的问题在于注册信标。它说你应该使用namespaceID和instanceID,但是我用来检索id的每个应用都告诉我要么必须在namespaceID / instanceID前加上0x,要么把它放在它们之间。 / p>
我尝试过以下格式:
我目前正在使用Estimote信标。我如何将Eddystone的Estimote信标注册到Proximity Beacon API?
在转换为base64之前,我不需要代码,只需要Eddystone UID格式。
答案 0 :(得分:2)
将Eddystone UID表示为包含命名空间和实例的字节数组,因此总共16个字节。像这样:
JSONObject json = new JSONObject();
// For namespace 0x0102030405060708090a, instance 0x0b0c0d0e0f00
byte[] myEddystoneUid = new byte[] {
(byte)0x01, (byte)0x02, (byte)0x03, (byte)0x04,
(byte)0x05, (byte)0x06, (byte)0x07, (byte)0x08,
(byte)0x09, (byte)0x0a, (byte)0x0b, (byte)0x0c,
(byte)0x0d, (byte)0x0e, (byte)0x0f, (byte)0x00
};
JSONObject advertisedId = new JSONObject()
.put("type", "EDDYSTONE")
.put("id", Base64.encodeToString(myEddystoneUid, Base64.NO_WRAP));
json.put("advertisedId", advertisedId);
json.put("status", "ACTIVE");