Je suis en train de tester la couche Wearable Data Layer Api comme décrit dans le Android tutorial.Quel est le Uri pour Wearable.DataApi.getDataItem() après avoir utilisé PutDataMapRequest?
Il y a une API de bas niveau basé autour DataItem
, qui ne peut avoir qu'un tableau d'octets que la charge utile, de sorte que la formation recommande l'utilisation PutDataMapRequest
, ce qui semble être essentiellement équivalente à un Bundle
(à savoir une carte sérialisable) lors de l'utilisation Intentions. Vous créez essentiellement une instance de cette classe, puis remplissez les valeurs et envoyez-la.
private final static String DATA_PATH = "/testdata";
PutDataMapRequest dataMap = PutDataMapRequest.create(DATA_PATH);
dataMap.getDataMap().putInt(...);
PutDataRequest request = dataMap.asPutDataRequest();
PendingResult<DataApi.DataItemResult> pendingResult = Wearable.DataApi.putDataItem(mGoogleApiClient, request);
pendingResult.setResultCallback(...);
Maintenant, je veux vérifier si ces données ont été stockées correctement (pour les tests, sur l'ordinateur de poche lui-même, je ne suis pas préoccupé par le portable en ce moment). Les méthodes appropriées pour ce sont dans la classe DataApi
, donc je peux appeler:
PendingResult<DataApi.DataItemResult> pending;
pending = Wearable.DataApi.getDataItem(mGoogleApiClient, uri);
pending.setResultCallback(...);
puis utilisez DataMapItem.fromDataItem()
dans la fonction de rappel pour obtenir la valeur.
Le problème est: Quel est l'Uri réel pour demander le DataItemResult?
Les données sont stockées, parce que si je l'utilise Wearable.DataApi.getDataItems(mGoogleApiClient)
itérer sur toutes données stockées, il est bien là, et Uri est:
"wear://<some guid here>/testdata"
et d'utiliser ce Uri avec DataApi.getDataItem()
renvoie le résultat correct . Mais je suis désemparés quant à la façon de générer, puisque je ne ai utilisé la partie /testdata
pour créer le PutDataRequest
...
Ou suis-je en train de faire les choses correctement?
Parfait! Je n'avais pas vu ça. Et je suppose que chaque périphérique connecté a son propre identifiant de noeud? – matiash
Oui c'est. L'identifiant de noeud et l'URL de l'objet sont également mentionnés dans cette vidéo. https://www.google.com/events/io/schedule/session/9bf77f55-afbe-e311-b297-00155d5066d7 – Poly
Oui, j'ai vu cette vidéo après avoir lu votre réponse. Merci encore! – matiash