0

使用 Proximity Beacon API 注册信标似乎很容易,但我无法使用 Nearby Messages API 接收任何消息(注册信标、添加附件、使用消息 API 订阅)。

我认为我的问题在于注册信标。它说您应该使用 namespaceID 和 instanceID,但是我用来检索 id 的每个应用程序都告诉我,我必须在 namespaceID/instanceID 前面放置 0x,或者将 : 放在它们之间。

我尝试了以下格式:

  • 命名空间ID实例ID
  • 命名空间ID:实例ID
  • 0xnamespaceIDinstanceID

我目前正在使用 Estimote 信标。我必须如何使用 Eddystone 将 Estimote 信标注册到 Proximity Beacon API?

我不需要代码,只需要在转换为 base64 之前的 Eddystone UID 格式。

4

1 回答 1

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");
于 2016-04-13T12:31:38.947 回答