Panoramica dell'API Data Layer

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

L'API Wearable Data Layer, che fa parte di Google Play Services, fornisce un canale di comunicazione tra i dispositivi indossabili (come gli smartwatch) e i dispositivi portatili connessi (di solito gli 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 a smartphone iOS, le app possono interrogare altre API basate sul cloud se è disponibile la connettività a internet. Per ulteriori informazioni su queste altre API, visita Accesso alla rete e sincronizzazione su Wear OS.

Attenzione:poiché le API del livello dati sono progettate per la comunicazione tra dispositivi portatili e indossabili, queste sono le uniche API che puoi utilizzare per configurare la comunicazione tra questi dispositivi. Ad esempio, non tentare di aprire socket di 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 contenuti multimediali.

App per il fitness

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

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

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

App multimediali

Per controllare un lettore multimediale tramite l'azione di pausa/riproduzione/avvio/fine dallo smartwatch allo smartphone, utilizza un client di messaggistica.

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 nodo di rete sui server di Google come intermediario.

Tutti i client Data Layer possono scambiare dati tramite Bluetooth o cloud, a seconda delle connessioni disponibili per i dispositivi. Supponi che i dati trasmessi utilizzando il livello dati possano a un certo punto utilizzare 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

Quando il Bluetooth non è disponibile, i dati vengono indirizzati automaticamente tramite Google Cloud. 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 portatile 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 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 assistenza in aggiunta alle API della piattaforma. Include una libreria del livello dati che aiuta a stabilire una connessione tra un dispositivo mobile e un dispositivo Wear OS. Inoltre, fornisce API pratiche per eseguire le seguenti operazioni:

  • Installa l'app sull'altro dispositivo.
  • Avvia l'app sull'altro dispositivo.
  • Avviare 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 istanze delle varie classi client, ad esempio DataClient e MessageClient.

Per ulteriori informazioni, consulta l'esempio DataLayer.

Utilizzare un client minimale

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

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 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 ai listener vengono eseguiti sul thread principale dell'interfaccia utente dell'app. Per effettuare richiamate su un thread diverso, utilizza un oggetto WearableOptions per 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 il riferimento WearableOptions.Builder.

Ricrea le istanze client in base alle necessità

I client API indossabili, come DataClient e MessageClient, sono economici da creare. Quindi, anziché conservare i client, ricreali in base alle tue esigenze, 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.