Panoramica dell'API Data Layer

Il nodo basato su cloud è controllato da un server di proprietà di Google
Figura 1. Un esempio di rete di nodi con dispositivi palmari e Wear OS.

L'API Wearable Data Layer, che fa parte di Google Play Services, fornisce un canale di comunicazione tra dispositivi indossabili (come gli smartwatch) e dispositivi portatili connessi (di solito smartphone). È un modo per sincronizzare e trasferire dati tra i dispositivi.

Nota:questa API è disponibile solo sugli smartwatch Wear OS e sui dispositivi Android accoppiati. Per gli smartwatch Wear OS accoppiati con smartphone iOS, le app possono eseguire query su altre API basate su cloud se è disponibile la connettività a internet. Per ulteriori informazioni su queste altre API, consulta Accesso alla rete e sincronizzazione su Wear OS.

Attenzione: poiché le API di livello dati sono progettate per la comunicazione tra dispositivi palmari e indossabili, sono le uniche che puoi utilizzare per configurare la comunicazione tra questi dispositivi. Ad esempio, non provare a aprire socket a basso livello per creare un canale di comunicazione.

Casi d'uso comuni

L'API Data Layer è particolarmente utile per i casi d'uso relativi a fitness e media.

App per il fitness

Invio dei dati sull'allenamento dall'app Wear OS all'app mobile Le app per il fitness devono spesso scrivere i dati sull'allenamento acquisiti da uno smartwatch in un'app mobile o in Connessione. Se utilizzi l'API Data Layer per trasferire i dati, utilizza un client di messaggi per inviare i dati sull'allenamento dall'app Wear OS all'app mobile per scrivere in Connessione Salute.

Trasmettere in streaming i dati in tempo reale sul dispositivo mobile durante un allenamento a casa

Uno scenario comune di allenamento a casa è lo streaming dei dati relativi alla frequenza cardiaca da un dispositivo Wear OS a un dispositivo mobile e la visualizzazione da parte dell'utente di informazioni aggiornate sulla frequenza cardiaca sullo schermo del dispositivo mobile. Per trasmettere in streaming questi dati, utilizza un client di canale.

App multimediali

Per controllare un media player tramite l'azione di messa in pausa/ripristino/avvio/interruzione dallo smartwatch allo smartphone, utilizza un client di messaggi.

Opzioni di comunicazione

I dati vengono trasferiti in uno dei seguenti modi:

  1. Direttamente, quando è stabilita una connessione Bluetooth tra il dispositivo Wear OS e un altro dispositivo.
  2. Tramite una rete disponibile, ad esempio LTE o Wi-Fi, utilizzando un node di rete sui server di Google come intermediario.

Tutti i client Data Layer possono scambiare dati tramite Bluetooth o tramite il cloud, a seconda delle connessioni disponibili per i dispositivi. Supponiamo che i dati trasmessi utilizzando il livello dati possano a un certo punto utilizzare i server di proprietà di Google.

Bluetooth

Quando i dispositivi sono connessi tramite Bluetooth, Data Layer utilizza questa connessione. Esiste un unico canale criptato tra i dispositivi, che utilizza la crittografia Bluetooth standard, gestita da Google Play Services.

Il cloud

I dati vengono instradati automaticamente tramite Google Cloud quando il Bluetooth non è disponibile. Tutti i dati trasferiti tramite Google Cloud sono criptati end-to-end.

Sicurezza delle comunicazioni

Google Play Services applica le seguenti limitazioni per fornire una comunicazione più sicura tra l'app installata su un dispositivo Wear OS e la stessa app installata su un dispositivo palmare nelle vicinanze:

  • Il nome del pacchetto deve corrispondere su tutti i dispositivi.
  • La firma del pacchetto deve corrispondere su tutti i dispositivi.

Nessun'altra app ha accesso ai dati, indipendentemente dal tipo di connessione.

Configura

L'API Wearable Data Layer ha le seguenti dipendenze:

Includi la seguente dipendenza nel file build.gradle del tuo modulo Wear:

dependencies {
    ...
    implementation("com.google.android.gms:play-services-wearable:19.0.0")
}

Facilitare la procedura di accoppiamento iniziale

Horologist fornisce diverse librerie di supporto oltre alle API di piattaforma. Include una libreria del livello dati che consente di stabilire una connessione tra un dispositivo mobile e un dispositivo Wear OS. Inoltre, fornisce API pratiche per:

  • Installa l'app sull'altro dispositivo.
  • Avvia l'app sull'altro dispositivo.
  • Avvia un'attività specifica sull'altro dispositivo.
  • Avvia l'app complementare.

Accedere al livello di dati

Per chiamare l'API Data Layer, utilizza la classe Wearable per ottenere istanze delle varie classi client, ad esempio DataClient e MessageClient.

Per ulteriori informazioni, consulta l'esempio DataLayer.

Utilizzare un client minimo

Per creare un client, consulta il seguente codice di esempio:

KotlinJava
val dataClient: DataClient = Wearable.getDataClient(context)
DataClient dataClient = Wearable.getDataClient(context);

Il contesto può essere qualsiasi contesto Android valido. Se utilizzi l'API nell'ambito di un Activity, utilizza il metodo getDataClient() della classe Wearable. In questo modo, alcune interazioni vengono visualizzate come finestre di dialogo anziché come notifiche, ad esempio quando all'utente viene chiesto di aggiornare la versione di Google Play Services.

Per impostazione predefinita, i callback agli ascoltatori vengono eseguiti nel thread dell'interfaccia utente principale dell'app. Per eseguire callback su un thread diverso, utilizza un oggetto WearableOptions per specificare un Looper personalizzato:

KotlinJava
runBlocking {
    Wearable.getDataClient(context, options)
}
WearableOptions options = new WearableOptions.Builder().setLooper(myLooper).build();
DataClient dataClient = Wearable.getDataClient(context, options);

Per ulteriori informazioni, consulta la documentazione di riferimento di WearableOptions.Builder.

Ricrea le istanze client, se necessario

I client API per dispositivi indossabili, come DataClient e MessageClient, sono economici da creare. Invece di conservarli, ricreali quando ne hai bisogno, utilizzando lo stile più adatto alla tua app.

Lo stato del client, ad esempio l'insieme di listener registrati, è condiviso tra tutti i client e viene mantenuto se Google Play Services viene aggiornato mentre un'app è in esecuzione.