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 (in genere smartphone). È un modo per sincronizzare e trasferire i 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 iPhone, le app possono eseguire query su altre API basate sul cloud se è disponibile la connettività internet. Per ulteriori informazioni su queste altre API, visita la pagina 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, sono le uniche API che puoi utilizzare per configurare la comunicazione tra questi dispositivi. Ad esempio, non provare ad aprire socket di basso livello per creare un canale di comunicazione.
Casi d'uso comuni
Utilizza l'API Data Layer quando l'interazione è strettamente tra lo smartwatch e lo smartphone. Ad esempio:
- Controllo remoto: lo smartwatch funge da telecomando per lo smartphone (ad es. per controllare un lettore musicale in esecuzione sullo smartphone, far scorrere una presentazione, fungere da otturatore della fotocamera).
- Avvio dell'app portatile: la funzionalità del pulsante "Apri sullo smartphone".
- Bridging dell'autenticazione: invio di un token di sessione dallo smartphone allo smartwatch durante la configurazione iniziale.
Molti scenari comuni dovrebbero invece utilizzare l'infrastruttura cloud esistente, ad esempio:
- Salvataggio dei dati: allenamenti, note.
- Recupero dei contenuti: caricamento di un elenco di allenamenti passati, download di musica, recupero delle informazioni meteo.
- Sincronizzazione dello stato: se l'utente cambia la foto del profilo sul web, lo smartwatch si aggiorna utilizzando il cloud, non eseguendo query sullo smartphone.
Per questi scenari, utilizza i tuoi endpoint e la tua infrastruttura esistenti anziché l'API Data Layer.
Opzioni per la comunicazione
I dati vengono trasferiti in uno dei seguenti modi:
- Direttamente, quando è presente una connessione Bluetooth stabilita tra il dispositivo Wear OS e un altro dispositivo.
- Tramite una rete disponibile, ad esempio LTE o Wi-Fi, utilizzando un nodo di rete sui server di Google come intermediario.
Tutti i client del livello dati possono scambiare dati tramite Bluetooth o tramite il cloud, a seconda delle connessioni disponibili per i dispositivi. Supponi 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, il livello dati utilizza questa connessione. Esiste un singolo canale criptato tra i dispositivi, che utilizza la crittografia Bluetooth standard, 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 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.
Configurazione
L'API Wearable Data Layer ha le seguenti dipendenze:
- L'ultima versione di Google Play Services.
- Un dispositivo Wear OS o un emulatore Wear OS.
Includi la seguente dipendenza nel file build.gradle del modulo Wear:
dependencies {
...
implementation("com.google.android.gms:play-services-wearable:19.0.0")
}
Semplificare la procedura di accoppiamento iniziale
Horologist fornisce diverse librerie di assistenza sulle API della 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 eseguire le seguenti operazioni:
- Installare l'app sull'altro dispositivo.
- Avviare l'app sull'altro dispositivo.
- Avviare un'attività specifica sull'altro dispositivo.
- Avviare l'app complementare.
Accedere al livello dati
Per chiamare l'API Data Layer, utilizza la Wearable classe per ottenere istanze delle
varie classi client, come DataClient e MessageClient.
Per ulteriori informazioni, consulta l'esempio DataLayer.
Utilizzare un client minimo
Per creare un client, consulta il seguente codice di esempio:
val dataClient = Wearable.getDataClient(this)
val available = try { GoogleApiAvailability.getInstance() .checkApiAvailability(client) .await() true } catch (e: AvailabilityException) { // API is not available in this device. false }
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 dell'interfaccia utente principale dell'app. Per eseguire
i callback su un thread diverso, utilizza un WearableOptions oggetto per
specificare un Looper personalizzato.
Per ulteriori informazioni, consulta il WearableOptions.Builder riferimento.
Ricreare le istanze client in base alle esigenze
I client delle API Wearable, come DataClient e MessageClient, sono
economici da creare. Quindi, anziché conservare i client, ricreali in base alle esigenze, utilizzando lo stile più adatto alla tua app.
Lo stato del client, ad esempio l'insieme dei listener registrati, è condiviso tra tutti i client e viene mantenuto se Google Play Services viene aggiornato durante l'esecuzione di un'app.