使用 Google 的 Proximity Beacon API 注册 Estimote Beacons (Eddystone)
Register Estimote Beacons (Eddystone) with Google's Proximity Beacon API
使用 Proximity Beacon API 注册 beacon 似乎很容易,但是我无法通过 Nearby Messages API 接收任何消息(注册 beacon,添加附件,订阅消息 API).
我认为我的问题在于注册信标。它说你应该使用 namespaceID 和 instanceID,但我用来检索 ID 的每个应用程序都告诉我,我要么必须将 0x 放在 namespaceID/instanceID 前面,要么将 : 放在它们之间。
我试过以下格式:
- namespaceIDinstanceID
- 命名空间ID:实例ID
- 0xnamespaceIDinstanceID
我目前正在使用 Estimote 信标。我将如何使用 Eddystone 将 Estimote 信标注册到 Proximity Beacon API?
我不需要代码,只需要转换为 base64 之前的 Eddystone UID 格式。
将 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");
使用 Proximity Beacon API 注册 beacon 似乎很容易,但是我无法通过 Nearby Messages API 接收任何消息(注册 beacon,添加附件,订阅消息 API).
我认为我的问题在于注册信标。它说你应该使用 namespaceID 和 instanceID,但我用来检索 ID 的每个应用程序都告诉我,我要么必须将 0x 放在 namespaceID/instanceID 前面,要么将 : 放在它们之间。
我试过以下格式:
- namespaceIDinstanceID
- 命名空间ID:实例ID
- 0xnamespaceIDinstanceID
我目前正在使用 Estimote 信标。我将如何使用 Eddystone 将 Estimote 信标注册到 Proximity Beacon API?
我不需要代码,只需要转换为 base64 之前的 Eddystone UID 格式。
将 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");