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 palmari connessi (di solito gli 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 smartphone iOS, le app possono eseguire query su altre API basate su cloud se è disponibile la connessione a internet. Per saperne di più su queste altre API, consulta Accesso alla rete e sincronizzazione su Wear OS.
Attenzione: poiché le API 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 tentare di aprire socket di basso livello per creare un canale di comunicazione.
Casi d'uso comuni
Utilizza l'API Data Layer quando l'interazione avviene esclusivamente tra lo smartwatch e lo smartphone. Ad esempio:
- Telecomando: lo smartwatch funge da telecomando per lo smartphone (ad es. controlla un lettore musicale in esecuzione sullo smartphone, fa scorrere una presentazione, funge da otturatore della fotocamera).
- Avvio di app su dispositivi portatili: la funzionalità del pulsante "Apri sullo smartphone".
- Authentication Bridging: 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 del meteo.
- Stato di sincronizzazione: se l'utente modifica 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 Livello dati.
Opzioni di comunicazione
I dati vengono trasferiti in uno dei seguenti modi:
- Direttamente, quando esiste 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. Tieni presente 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. Esiste un unico 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 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.
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 tuo modulo Wear:
dependencies {
...
implementation("com.google.android.gms:play-services-wearable:20.0.1")
}
Facilitare la procedura di accoppiamento iniziale
Horologist fornisce diverse librerie di supporto oltre 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.
- Avvia un'attività specifica sull'altro dispositivo.
- Avvia l'app complementare.
Accedi al livello dati
Per chiamare l'API Livello dati, utilizza la classe Wearable per ottenere istanze delle varie classi client, come DataClient e MessageClient.
Per ulteriori informazioni, consulta l'esempio di DataLayer.
Utilizza 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 propria versione di Google Play Services.
Per impostazione predefinita, i callback ai listener vengono eseguiti nel thread dell'interfaccia utente principale dell'app. Per fare in modo che i callback vengano eseguiti su un thread diverso, utilizza un oggetto WearableOptions per specificare un Looper personalizzato.
Per saperne di più, consulta il riferimento WearableOptions.Builder.
Ricrea le istanze client, se necessario
I client API Wearable, come DataClient e MessageClient, sono economici da creare. Quindi, invece di conservare i client, 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 conservato se Google Play Services viene aggiornato mentre un'app è in esecuzione.