Consigliamo che le app Wear OS funzionino indipendentemente da uno smartphone, in modo che gli utenti possano completare le attività su uno smartwatch senza accedere a uno smartphone Android o iOS. Se l'app per lo smartwatch richiede l'interazione con lo smartphone, devi contrassegnare l'app Wear OS come non autonoma e adottare misure per assicurarti che l'utente abbia a disposizione l'app per smartphone.
Pianificare l'app
Puoi utilizzare Android App Bundle per generare automaticamente Android Package Kit (APK) ottimizzati per la configurazione del dispositivo di ogni utente nello stesso elenco delle applicazioni. In questo modo gli utenti possono scaricare solo il codice e le risorse necessari per eseguire la tua app.
Per informazioni sulla configurazione della tua app per la distribuzione tramite il Google Play Store, vedi Pacchettizzare e distribuire app Wear OS e la guida per iniziare a utilizzare Android App Bundle.
Per le nuove app, il livello API target deve essere 30 o superiore. Per saperne di più, consulta
Soddisfare i requisiti relativi al livello API target di Google Play. Imposta
targetSdkVersion sul livello API 30 (Wear OS 3) per assicurarti che la tua app funzioni correttamente
sull'ultima versione della piattaforma.
Per informazioni sulle richieste di rete e sull'accesso alla rete a larghezza di banda elevata, consulta Accesso alla rete e sincronizzazione su Wear OS.
Definire un'app come app Wear OS
Devi definire il tag
<uses-feature> nel file manifest Android della tua app.
Per indicare che si tratta di un'app per orologio, aggiungi una voce come la seguente:
<uses-feature android:name="android.hardware.type.watch" />
Identificare un'app come autonoma o non autonoma
Un'app per smartwatch è considerata autonoma o non autonoma:
- Autonoma: un'app completamente indipendente che non richiede un'app per smartphone per le funzionalità di base. Sebbene i prompt "Apri sullo smartphone" siano accettabili, l'app deve fornire mezzi alternativi per consentire agli utenti di completare una funzione dell'app, ad esempio un link breve o un codice QR, senza dipendere da uno smartphone connesso.
- Non autonoma: un'app dipendente che richiede un'app su uno smartphone o un altro dispositivo per le funzionalità di base. Questa opzione è ideale per le app che non possono fornire facilmente un mezzo alternativo, ad esempio un codice QR o un link breve, per completare una funzione di base dell'app, come l'autenticazione.
Nota:anche per le app non autonome, gli utenti possono installare l'app Wear OS prima dell'app mobile. Pertanto, se l'app Wear OS rileva che un dispositivo portatile nelle vicinanze non dispone dell'app complementare necessaria, invita l'utente a installarla.
Google convalida l'accuratezza dello stato autonomo di un'app durante la pubblicazione dell'app. Questo valore influisce sulla visibilità delle app all'interno del Play Store sui dispositivi scollegati, ad esempio i dispositivi Wear OS che non sono accoppiati a dispositivi portatili. Le app non autonome, nonché le app che gli sviluppatori designano erroneamente come "autonome", non sono disponibili per gli utenti di questi dispositivi non collegati.
Nella tua app Wear OS, imposta il valore dell'elemento
meta-data com.google.android.wearable.standalone
nel file manifest Android per dichiarare se la tua app è autonoma o non autonoma.
Se l'app per smartwatch è un'app completamente indipendente e autonoma, indicalo
al Google Play Store impostando il
valore di com.google.android.wearable.standalone su true:
<meta-data android:name="com.google.android.wearable.standalone" android:value="true" />
Se l'app per smartwatch non è autonoma e dipende da un'altra app per le funzionalità di base,
imposta il valore di com.google.android.wearable.standalone su
false. Ciò indica che l'app per lo smartwatch richiede un altro dispositivo, ma non
influisce sulla promozione dell'app sul Google Play Store.
Nota:
anche se il valore di com.google.android.wearable.standalone è
false, l'app
dell'orologio può essere installata prima dell'installazione dell'app per smartphone.
Pertanto, se la tua app per smartwatch
rileva che uno smartphone complementare
non dispone dell'app per smartphone necessaria, come descritto in questa pagina,
chiedi all'utente di installare l'app per smartphone.
Archiviazione di codice e dati condivisi
Il codice può essere condiviso tra un'app Wear OS e un'app per smartphone. Ad esempio, il codice comune per il networking può essere in una libreria condivisa.
Facoltativamente, il codice specifico per un fattore di forma può trovarsi in un modulo separato.
Puoi utilizzare le API di archiviazione Android standard per archiviare i dati localmente, come faresti su uno smartphone. Ad esempio, puoi utilizzare le API SharedPreferences o la libreria di persistenza Room.
Rilevare la tua app su un altro dispositivo
L'app per lo smartwatch e l'app per lo smartphone corrispondente possono rilevare se l'altra app è disponibile.
Le app per smartphone e smartwatch possono utilizzare
CapabilityClient per pubblicizzare la propria presenza
a un dispositivo accoppiato. Possono farlo in modo statico o dinamico.
Quando un'app
si trova su un nodo nella rete Wear OS di un utente, ad esempio su uno smartphone, uno smartwatch accoppiato o
nel cloud, l'CapabilityClient consente ad altre
app di rilevarla. Per saperne di più, consulta
Funzionalità di pubblicazione di annunci.
Se una delle tue app non riesce a rilevare l'altra, puoi chiedere all'utente di aprire la scheda del Play Store sul dispositivo interessato. Si tratta di una soluzione per le app per smartwatch che richiedono la presenza dell'app per smartphone complementare per funzionare correttamente.
Devi verificare se il Play Store è disponibile sul dispositivo, perché non tutti gli smartphone, come gli iPhone, supportano il Play Store.
Le sezioni seguenti descrivono le best practice per due scenari:
- L'app autonoma dello smartwatch ha bisogno dell'app per smartphone.
- L'app per smartphone ha bisogno dell'app autonoma per lo smartwatch.
Puoi anche esaminare l'
esempio di helper del livello dati, che mostra come utilizzare le
librerie di helper del livello dati, parte di
Horologist. Questi helper ti consentono di monitorare la connessione tra un dispositivo
mobile e un dispositivo Wear OS.
Per ulteriori informazioni
sulle classi descritte nella sezione seguente, consulta il
riferimento API Wear OS.
Questo riferimento include anche informazioni sulla classe
PhoneTypeHelper, che contiene un metodo
getPhoneDeviceType() che consente all'app Wear OS di verificare se lo smartphone associato è un dispositivo Android o iOS.
Specificare i nomi delle funzionalità per il rilevamento delle app
Per l'app corrispondente a ogni tipo di dispositivo, orologio o smartphone, specifica una
stringa univoca per il nome della funzionalità nel
file res/values/wear.xml.
Ad esempio, nel modulo mobile, il file wear.xml
potrebbe includere quanto segue:
<resources xmlns:tools="http://schemas.android.com/tools" tools:keep="@array/android_wear_capabilities"> <string-array name="android_wear_capabilities"> <item>verify_remote_example_phone_app</item> </string-array> </resources>
Nel modulo Wear OS, il file wear.xml include un
valore diverso per il nome della funzionalità,
ad esempio:
<resources xmlns:tools="http://schemas.android.com/tools" tools:keep="@array/android_wear_capabilities"> <string-array name="android_wear_capabilities"> <item>verify_remote_example_wear_app</item> </string-array> </resources>
Per saperne di più, consulta Funzionalità di pubblicazione di annunci.
Rilevamento di app e apertura di un URL da uno smartwatch
L'app per smartwatch può rilevare se lo smartphone associato di un utente ha la tua app per smartphone. Segui questi passaggi:
-
Utilizza
CapabilityClientper verificare se l'app Telefono è installata sullo smartphone accoppiato. Per maggiori informazioni, consulta l' esempio di helper del livello dati su GitHub. -
Se l'app Telefono non è installata sullo smartphone, utilizza il metodo
PhoneDeviceType.getPhoneDeviceType()per controllare il tipo di smartphone. Per maggiori dettagli, consulta la sezione seguente. -
Se
PhoneDeviceType.DEVICE_TYPE_ANDROIDviene restituito, lo smartphone è un Android. ChiamaRemoteActivityHelper.startRemoteActivity()sul dispositivo Wear OS per aprire il Play Store sullo smartphone. Utilizza l'URI del market per l'app per smartphone, che potrebbe essere diverso dall'URI dell'app Wear. Ad esempio, utilizza un URI del market come:market://details?id=com.example.android.wearable.wear.finddevices. -
Se
PhoneDeviceType.DEVICE_TYPE_IOSviene restituito, lo smartphone è un iPhone senza Play Store disponibile. Apri l'App Store sull'iPhone chiamandoRemoteActivityHelper.startRemoteActivity()sul dispositivo Wear OS. Puoi specificare l'URL iTunes della tua app, ad esempiohttps://itunes.apple.com/us/app/yourappname.Da Wear OS, non puoi determinare in modo programmatico se l'app per smartphone è installata su un dispositivo iOS. Come best practice, fornisci un meccanismo all'utente per attivare manualmente l'apertura dell'App Store.
Nota: utilizza l'API RemoteActivityHelper descritta in precedenza per specificare che qualsiasi URL venga aperto sullo smartphone dall'orologio e che non sia necessaria alcuna app per smartphone.
Dettagli per il rilevamento del tipo di smartphone accoppiato
Ecco uno snippet che utilizza il metodo getPhoneDeviceType() per
controllare il tipo di smartphone a cui è accoppiato lo smartwatch:
var phoneDeviceType: Int = PhoneTypeHelper.getPhoneDeviceType(this)
Il valore restituito dal metodo getPhoneDeviceType()
è uno dei seguenti:
| Valore restituito | Descrizione |
|---|---|
DEVICE_TYPE_ANDROID
|
Lo smartphone associato è un dispositivo Android. |
DEVICE_TYPE_IOS
|
Lo smartphone associato è un dispositivo iOS. |
DEVICE_TYPE_UNKNOWN
|
Lo smartphone associato è un dispositivo sconosciuto. |
DEVICE_TYPE_ERROR
|
Si è verificato un errore durante la determinazione del tipo di smartphone accoppiato. Un altro controllo deve essere eseguito in un secondo momento. |
Rilevamento delle app a partire da uno smartphone Android
Il tuo smartphone Android può rilevare se i dispositivi Wear OS di un utente hanno la tua app per smartwatch. Segui questi passaggi:
-
Utilizzando
NodeClient, trova tutti gli smartwatch connessi allo smartphone dell'utente. Per maggiori informazioni, consulta l' esempio di helper del livello dati su GitHub. -
Utilizzando
CapabilityClient, controlla su quale smartwatch dell'utente è installata la tua app. -
Se la tua app non è installata su tutti gli smartwatch dell'utente, chiedigli di aprire il Play Store sui dispositivi Wear OS rimanenti dallo smartphone utilizzando il metodo
RemoteActivityHelper.startRemoteActivity(). Utilizza l'URI del market per l'app Wear OS, che potrebbe essere diverso dall'URI dell'app per smartphone. Ad esempio, utilizza un URI del market come:market://details?id=com.example.android.wearable.wear.finddevices.
Dati sulla posizione per gli smartwatch accoppiati agli iPhone
Per gli smartwatch accoppiati agli iPhone, utilizza il Fused Location Provider (FLP) per ottenere i dati sulla posizione sullo smartwatch. Per saperne di più, consulta Rilevare la posizione su Wear OS.
Se lo smartphone associato è disponibile, FLP lo utilizza per i dati sulla posizione.
Ottenere solo i dati necessari
In genere, quando ottieni dati da internet, recupera solo quelli necessari. In caso contrario, potresti introdurre latenza, utilizzo di memoria e consumo della batteria non necessari.
Quando uno smartwatch è connesso tramite Bluetooth LE, la tua app potrebbe avere accesso a una larghezza di banda di soli 4 kilobyte al secondo, a seconda dello smartwatch. Pertanto, ti consigliamo di seguire questi passaggi:
- Controlla le richieste e le risposte di rete per i dati aggiuntivi necessari solo per un'app per smartphone.
- Riduci le dimensioni delle immagini di grandi dimensioni prima di inviarle a uno smartwatch tramite una rete.
Per i casi in cui è necessaria una rete a larghezza di banda elevata, consulta Accesso alla rete a larghezza di banda elevata.
Altri esempi di codice
L' esempio di helper del data layer illustra ulteriormente l'utilizzo delle API trattate in questa pagina.