Panoramica dell'API Data Layer

Il nodo basato su cloud è controllato da un server di proprietà di Google
Figura 1. Un campione di rete di nodi con 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 gli smartphone). È un modo per sincronizzare trasferire dati tra dispositivi.

Nota: questa API è disponibile solo su orologi e smartwatch Wear OS dispositivi Android accoppiati. Per gli orologi Wear OS accoppiati con telefoni iOS, le app possono eseguire query su altre API basate su cloud se è disponibile una connettività a internet. Per maggiori informazioni informazioni su queste altre API, visita Accesso alla rete e sincronizzazione on Wear OS.

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

Casi d'uso comuni

L'API Data Layer è particolarmente utile per casi d'uso di fitness e contenuti multimediali.

App per il fitness

L'invio di dati di allenamento dall'app Wear OS all'app mobile per il fitness spesso ha bisogno scrivi i dati relativi all'allenamento acquisiti da uno smartwatch su un'app mobile o in Salute Connetti. Se utilizzi l'API Data Layer per trasferire i dati, utilizza una client di messaggistica per inviare i dati di allenamento dall'app per Wear OS all'app mobile per scrivere su Connessione Salute.

Trasmetti dati in tempo reale al dispositivo mobile durante un esercizio a casa

Uno scenario comune di allenamento a casa è lo streaming di dati sulla frequenza cardiaca da Wear OS. dispositivo mobile a un dispositivo mobile, mostrando all'utente informazioni aggiornate sul battito cardiaco sullo schermo del dispositivo mobile. Per trasmettere questi dati in streaming, utilizza un client di canale.

App multimediali

Per controllare un lettore multimediale mediante l'azione di pausa/ripresa/avvio/fine dal dall'orologio al telefono, utilizzare un client di messaggi.

Opzioni per la comunicazione

I dati vengono trasferiti in uno dei seguenti modi:

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

Tutti i client del livello dati possono scambiare dati tramite Bluetooth oppure cloud, in base alle connessioni disponibili per i dispositivi. Supponiamo che i dati trasmessi utilizzando il livello dati potrebbero a un certo punto utilizzare server di proprietà di Google.

Bluetooth

Quando i dispositivi sono connessi tramite Bluetooth, il livello dati utilizza questa connessione. C'è un unico canale criptato tra i dispositivi, utilizzando Crittografia Bluetooth, gestita da Google Play Services.

Cloud

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

Sicurezza delle comunicazioni

Google Play Services applica le seguenti restrizioni per fornire maggiore sicurezza comunicazione tra l'app installata su un dispositivo Wear OS e la stessa app installato su un dispositivo portatile nelle vicinanze:

  • Il nome del pacchetto deve corrispondere a tutti i dispositivi.
  • La firma del pacco deve essere uguale 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:18.2.0")
}

Agevolare il processo di accoppiamento iniziale

Horologist fornisce diverse librerie helper oltre alle API della piattaforma. Include una libreria di livelli dati che consente di stabilire una connessione tra un dispositivo mobile e un dispositivo Wear OS. Inoltre, fornisce pratiche API per effettuare le seguenti operazioni:

  • 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 dati

Per chiamare l'API Data Layer, utilizza la classe Wearable per ottenere le istanze alle varie classi del client, come DataClient e MessageClient.

Per ulteriori informazioni, consulta l'esempio di Livelli di dati.

Utilizza un client minimo

Per creare un client, vedi il codice di esempio che segue:

Kotlin

val dataClient: DataClient = Wearable.getDataClient(context)

Java

DataClient dataClient = Wearable.getDataClient(context);

Il contesto può essere qualsiasi contesto Android valido. Se utilizzi l'API in l'ambito di un Activity, usa il metodo getDataClient() di Wearable . In questo modo, alcune interazioni vengono visualizzate sotto forma di finestre di dialogo Notifiche, ad esempio quando all'utente viene chiesto di aggiornare la versione di Google Play Services.

Per impostazione predefinita, i callback ai listener vengono eseguiti nel thread dell'interfaccia utente principale dell'app. Per avere i callback effettuati su un thread diverso, utilizza un oggetto WearableOptions specificare un Looper personalizzato:

Kotlin

runBlocking {
    Wearable.getDataClient(context, options)
}

Java

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 in base alle esigenze

I client API indossabili, come DataClient e MessageClient, sono poco costoso da creare. Quindi, invece di trattenere i clienti, ricreali con lo stile più adatto alla tua app.

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