Ich muss Sensordaten auf einem Android Wear-Gerät sammeln und diese auf ein Android-Smartphone streamen. Das heißt, ich habe eine regelmäßige Menge von Werten, die ich über einen längeren Zeitraum an das Telefon senden möchte. Die Datenrate ist nicht hoch, beispielsweise 100 Abtastungen pro Sekunde mit 20 Bytes pro Messprobe. Es scheint, dass dies entweder als eine Reihe von dataItems (für die DataItem-API) oder als eine Reihe kleiner Blobs (für die ChannelAPI) implementiert werden könnte. Sowohl DataItem- als auch Channel-APIs sehen so aus, als könnten sie funktionieren. Gibt es einen Grund, sich für das eine oder andere zu entscheiden? Andere Fragen: 1) Ich habe gelesen, das Android docs und es sieht aus wie das DataItem-Protokoll ermöglicht Caching und die erneute Übertragung im Falle von zwielichtigen drahtlosen Transport. Ist das ChannelAPI auch? 2) Ich werde wahrscheinlich jede Probe Messung als ein separates Element (oder Blob) über und erwarten, dass diese im Laufe der Zeit ansammeln. Wenn das Telefon die Daten empfängt (und sie in den lokalen Speicher kopiert), sollte das Datenelement (oder der Blob) entfernt werden. Beeinflusst dies die Daten auf dem Wear-Gerät? Danke!Android Wear: DataItem-API im Vergleich zur Channel-API
Antwort
Okay, ich beantworte meine eigene Frage. Nach einigen Monaten Arbeit mit der DataLayer API kann ich sagen, dass es sehr gut funktioniert und überraschend robust ist. Ich habe drei Wear-Geräte, die jeweils 100-Hz-Sensordaten an eine gängige Android-App senden, und sie funktioniert ohne Datenengpässe. Es funktioniert sogar, wenn ich draußen und nicht in der Nähe eines WiFi-AP bin. Zu den Fragen: 1) Ja, das Caching funktioniert und ich habe noch kein Problem mit fehlenden Paketen gefunden. Ich kenne die Channel API allerdings nicht. 2) Ich habe nicht gefunden, dass dies ein Problem ist. Man schreibt die Daten in ein Objekt auf dem Verschleißgerät, gibt eine Putrequest aus und es erscheint auf der Phone-Seite mit einem Aufruf von onDataChanged(). Wie es im Hintergrund gehandhabt wird, ist glücklicherweise transparent.