Le API del livello dati di Wear OS sono costituite da diversi tipi di client, utili per diversi tipi di dati e in diverse condizioni di connettività.
Questa pagina presenta ogni tipo di client e include una tabella che confronta le funzionalità dei diversi client. Utilizzando queste informazioni, puoi selezionare l'insieme di tipi di client più adatto alla tua app.
Quando utilizzare l'API Livello dati
Utilizza l'API Data Layer quando l'interazione avviene esclusivamente tra lo smartwatch locale e lo smartphone locale. Per esempi dettagliati, consulta i casi d'uso comuni del livello dati.
Client di dati
Un oggetto DataClient consente di leggere o scrivere in un DataItem o
Asset:
Ogni
DataItemè un'unità di informazioni che viene trasmessa e sincronizzata su tutti i dispositivi nelle vicinanze di proprietà di un utente. UnDataItemviene archiviato in modo permanente e il tuo dispositivo può leggerne i contenuti fino a quando l'elemento dati non viene eliminato.Un
Assetè destinato a payload di dati più grandi, come immagini o file multimediali.
Client di messaggistica
Un oggetto MessageClient può inviare messaggi ed è utile per le chiamate di procedura remota (RPC), ad esempio per utilizzare un dispositivo Wear OS per controllare la versione della tua app installata su un dispositivo palmare.
I messaggi sono ideali per le richieste unidirezionali che utilizzano sendMessage() o per un modello di comunicazione di richiesta e risposta che utilizza sendRequest(). A differenza dei client di dati, i client di messaggi richiedono che i nodi siano connessi alla rete per inviare messaggi.
Il metodo sendMessage() fa del suo meglio per consegnare al nodo remoto e non contiene alcun meccanismo di ripetizione integrato. Se il dispositivo di destinazione
si disconnette prima dell'inizio del trasferimento di rete, il metodo restituisce
TARGET_NODE_NOT_CONNECTED.
Client del canale
Un oggetto ChannelClient fornisce una comunicazione orientata allo stream tra i dispositivi. Un canale è una pipe di comunicazione bidirezionale tra due nodi, utile per casi d'uso come i seguenti:
- Trasferire file di dati tra due o più dispositivi connessi quando la connessione a internet non è disponibile.
ChannelClientconsente di risparmiare spazio su disco rispetto aDataClient, che crea una copia degli asset sul dispositivo locale prima di sincronizzarli con i dispositivi connessi. - Invia in modo affidabile un file troppo grande per essere inviato utilizzando un
MessageClient. - Trasferire dati in streaming, ad esempio dati vocali dal microfono.
Dopo aver aperto un canale, puoi inviare e ricevere dati in un flusso di byte continuo, anziché nelle unità DataItem discrete richieste dai client di dati.
Sei responsabile della gestione del flusso di dati e della coerenza dei dati. I client di canale non offrono lo stesso livello di sincronizzazione automatica dei dati dei client di dati.
Confronto con i clienti
La seguente tabella mette a confronto le funzionalità dei diversi client:
| Tipo di client | Persistenza dei dati | Supporta dati di dimensioni superiori a 100 kB? | Rete da utilizzare | Funziona offline? |
|---|---|---|---|---|
| Client di dati | I dati vengono conservati a tempo indeterminato | Sì (utilizza oggetti Asset) |
Bluetooth preferito. I dati vengono sottoposti a backup nel cloud; se il Bluetooth è disponibile, il backup viene eseguito in modo asincrono | Sì, sia per la lettura che per la scrittura |
| Client di messaggistica | Nessuna persistenza e nessun nuovo tentativo | No | Bluetooth preferito, ma può utilizzare il Wi-Fi se è l'unico tipo di connessione disponibile | No |
| Client del canale | Nessuna persistenza (orientata alla connessione) | Sì | Bluetooth preferito, ma può utilizzare il Wi-Fi se è l'unico tipo di connessione disponibile | No |
Per ulteriori informazioni sull'utilizzo delle API Livello dati, consulta la guida Sincronizza i dati. Per considerazioni sull'alimentazione quando utilizzi le API Livello dati, consulta la guida Risparmia energia.