Sto testando il livello dati indossabile Api come descritto nello Android tutorial.Che cos'è Uri per Wearable.DataApi.getDataItem() dopo aver usato PutDataMapRequest?
C'è un'API basso livello basata soprattutto DataItem
, che può avere solo una matrice di byte come payload, così la formazione consiglia di utilizzare PutDataMapRequest
, che sembra essere sostanzialmente equivalente ad un (cioè una cartina serializzabile) Bundle
utilizzando Intents. In pratica, crei un'istanza di questa classe, quindi riempi i valori e invialo.
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(...);
Ora, voglio verificare se questo dato è stato conservato correttamente (per il test, sul palmare stesso, io non sono preoccupato per il wearable in questo momento). I metodi adeguati per questo sono nella classe DataApi
, quindi mi possono chiamare:
PendingResult<DataApi.DataItemResult> pending;
pending = Wearable.DataApi.getDataItem(mGoogleApiClient, uri);
pending.setResultCallback(...);
e quindi utilizzare DataMapItem.fromDataItem()
all'interno del callback per ottenere il valore.
Il problema è: qual è l'Uri effettivo per richiedere DataItemResult?
I dati vengono memorizzati, perché se io uso Wearable.DataApi.getDataItems(mGoogleApiClient)
di scorrere oltre tutti dati memorizzati, è davvero lì, e l'Uri è:
"wear://<some guid here>/testdata"
E l'utilizzo di questo Uri con DataApi.getDataItem()
restituisce il risultato corretto . Ma io sono all'oscuro su come generare che, da quando ho usato solo la parte /testdata
per creare il PutDataRequest
...
O sto facendo le cose in modo errato?
Perfetto! Non l'avevo visto. E presumo che ogni dispositivo connesso abbia il proprio ID di nodo? – matiash
Sì, lo è. l'id del nodo e l'url dell'elemento sono menzionati anche in questo video. https://www.google.com/events/io/schedule/session/9bf77f55-afbe-e311-b297-00155d5066d7 – Poly
Sì, ho visto quel video dopo aver letto la tua risposta. Grazie ancora! – matiash