2016-04-12 5 views
0

Das Registrieren von Beacons mit der Proximity Beacon API schien einfach, aber ich kann keine Nachrichten mit der Inneweb Messages API empfangen (registrierte Beacons, Anhänge hinzugefügt, abonniert mit der Nachrichten API) .Registrieren Sie Estimote Beacons (Eddystone) mit Googles Proximity Beacon API

Ich denke, mein Problem liegt in der Registrierung der Beacon. Es besagt, dass Sie die NamespaceID und die instanceID verwenden sollen, aber jede App, die ich zum Abrufen der IDs verwende, sagt mir, dass ich entweder 0x vor die NamespaceID/instanceID setzen muss oder dazwischen setzen muss.

ich die folgenden Formate ausprobiert habe:

  • namespaceIDinstanceID
  • Namespace-: instanceId
  • 0xnamespaceIDinstanceID

Ich verwende Estimote Baken im Moment. Wie würde ich Estimote Beacons mit Eddystone für die Proximity Beacon API registrieren müssen?

Ich brauche nicht den Code, nur das Eddystone UID-Format, bevor es in base64 konvertiert wird.

Antwort

2

Drücken Sie die Eddystone-UID als Byte-Array aus, das sowohl den Namespace als auch die Instanz enthält, also insgesamt 16 Byte. Wie folgt:

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"); 
+0

Vielen Dank für diese Antwort, löste es mein Problem! – Melli

Verwandte Themen