Scegli un tipo di client

Le API del livello dati di Wear OS sono costituite da diversi tipi di client, che sono utili per diversi tipi di dati e in condizioni di connettività diverse.

Questa pagina presenta ogni tipo di cliente e include una tabella che mette a confronto le funzionalità dei diversi clienti. Con queste informazioni puoi selezionare i tipi di client più adatti alla tua app.

Client di dati

Un oggetto DataClient ti 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 dispositivo può leggerne i contenuti finché l'elemento di 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 l'utilizzo di un dispositivo Wear OS per controllare la versione della tua app installata su un dispositivo portatile.

I messaggi sono ideali per le richieste unidirezionali che utilizzano sendMessage() o per un modello di comunicazione di tipo 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 i messaggi.

Il metodo sendMessage() esegue il meglio possibile per inviare i dati 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 basata su stream tra i dispositivi. Un canale è un canale di comunicazione bidirezionale tra due nodi, utile per casi d'uso come i seguenti:

  • Trasferisci file di dati tra due o più dispositivi connessi quando 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.
  • Inviare in modo affidabile un file troppo grande per essere inviato utilizzando un MessageClient.
  • Trasferire i dati in streaming, ad esempio i 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 loro coerenza. I client di canale non offrono lo stesso livello di sincronizzazione automatica dei dati offerto dai client di dati.

Confronto dei clienti

La seguente tabella mette a confronto le funzionalità dei diversi client:

Tipo di client Persistenza dei dati Supporta dati più grandi di 100 KB? Rete da utilizzare Funziona offline?
Client di dati I dati vengono mantenuti a tempo indeterminato Sì (utilizza gli oggetti Asset) È preferibile utilizzare il Bluetooth. Viene eseguito il backup dei dati sul cloud. Se il Bluetooth è disponibile, questo 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 È preferibile il Bluetooth, ma è possibile utilizzare il Wi-Fi se è l'unico tipo di connessione disponibile No
Client di canale Nessuna persistenza (orientata alla connessione) È preferibile il Bluetooth, ma è possibile utilizzare il Wi-Fi se è l'unico tipo di connessione disponibile No