Google 有一个示例 Android 应用程序,可让您在其后端注册信标。registerBeacon
您可以在此处查看调用的代码。
实际注册过程将 JSON 发布到 Google 的服务器上,而 JSON 的生成来自这里com.google.sample.beaconservice.Beacon
这个项目中的类。
如果您查看该行,您将看到它将标识符从字节数组转换为 base 64,其中:
JSONObject advertisedId = new JSONObject()
.put("type", type)
.put("id", Utils.base64Encode(id));
因此,对于具有 0x010203040506070809 的 10 字节命名空间和 0x0a0b0c0d0e0f 的 6 字节实例的 Eddystone UID,您可以对标识符进行 base 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);