Scegli un tipo di client

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. Un DataItem viene 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. ChannelClient consente di risparmiare spazio su disco rispetto a DataClient, 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.