Rilevamento dei dispositivi su una rete utilizzando le API del livello dati

I dispositivi possono stabilire una connessione a internet direttamente utilizzando una connessione Wi-Fi o cellulare oppure indirettamente tramite un dispositivo Bluetooth accoppiato.

Nodi raggiungibili e vicini

Un dispositivo è considerato raggiungibile quando è online e disponibile per comunicare con un altro dispositivo, direttamente tramite Bluetooth o indirettamente utilizzando il cloud come intermediario.

Un dispositivo è considerato nelle vicinanze se può essere connesso direttamente tramite Bluetooth, senza utilizzare il cloud.

Attività che influiscono sul tempo di riconnessione

In determinate circostanze, i dispositivi potrebbero richiedere fino a 4 minuti per ristabilire una connessione. Questi scenari includono:

  • Inattività del dispositivo Wear OS: se un dispositivo Wear OS viene rimosso dal polso dell'utente o non viene utilizzato attivamente per un periodo prolungato, il tempo di riconnessione potrebbe essere prolungato.
  • Stato di sospensione: lo stato di sospensione di un dispositivo portatile può limitare i processi in background, aumentando potenzialmente il tempo di riconnessione del dispositivo.
  • Interazione dell'utente: se l'utente inizia a interagire con un dispositivo portatile e un dispositivo Wear OS all'incirca contemporaneamente, spesso la procedura di riconnessione viene accelerata.

Individuare tutti i dispositivi utilizzando un client nodo

Un oggetto NodeClient identifica e trasmette all'elenco dei dispositivi Android collegati a una rete, indipendentemente dalle funzionalità di ciascun dispositivo. Tutte le app su un dispositivo ricevono queste notifiche di eventi, ad esempio un nuovo dispositivo che si connette alla rete o un dispositivo esistente che passa offline.

La classe NodeClient è particolarmente utile per rilevare i dispositivi su cui non è installata la tua app.

Rilevamento di dispositivi specifici utilizzando un client di funzionalità

Un oggetto CapabilityClient fornisce informazioni su quali dispositivi della rete Wear OS supportano funzionalità specifiche dell'app. Una funzionalità è una funzionalità che un'app definisce in fase di creazione o configura dinamicamente in fase di runtime.

Ad esempio, un'app mobile per Android potrebbe pubblicizzare il supporto del controllo remoto della riproduzione dei video. La versione per Wear OS di quell'app può utilizzare CapabilityClient per controllare se la versione mobile dell'app è installata su un dispositivo nelle vicinanze e supporta la funzionalità. In questo caso, l'app per Wear OS può mostrare i pulsanti di riproduzione e pausa per consentire agli utenti di controllare un video in riproduzione sul proprio dispositivo mobile dal proprio dispositivo Wear OS. La funzionalità di trasmissione funziona anche nella direzione opposta; le app per Wear OS possono elencare le funzionalità che supportano.

Verificare le nuove funzionalità dell'app

Utilizza il CapabilityClient per determinare l'ID nodo di un dispositivo con cui devi comunicare. Ad esempio, se devi verificare la presenza di una nuova funzionalità nell'app sui dispositivi portatili, crea una funzionalità per la nuova funzionalità sul lato portatile. L'app per Wear OS può quindi eseguire query per i dispositivi che supportano questa funzionalità. Se la funzionalità non è presente su tutti i dispositivi, significa che l'utente non ha una versione della tua app che supporta questa funzionalità, che dovresti gestire in modo corretto nella logica dell'app. Se presupponi che il dispositivo portatile sia sempre il nodo corretto con cui comunicare, i tuoi messaggi potrebbero non essere recapitati, perché l'app Telefono non supporta questa funzionalità.

Determina se un dispositivo Wear OS è l'unico presente su una rete

Puoi utilizzare CapabilityClient per verificare se la tua app deve funzionare in modalità autonoma perché non ci sono altri dispositivi Android nelle vicinanze. Se passa per FILTER_ALL, non dovrebbero comparire altri dispositivi nei risultati.