Consigliamo che le app per Wear OS funzionino in modo indipendente da uno smartphone, in modo che gli utenti possano completare attività su uno smartwatch senza accedere a uno smartphone Android o iOS. Se l'app dell'orologio richiede l'interazione con il telefono, devi contrassegnare la tua app per Wear OS come non autonoma e adottare le misure necessarie per assicurarsi che l'utente abbia a disposizione l'app per smartphone.
Pianifica la tua app
Puoi usare Android App Bundle per generare automaticamente APK (Android Package Kit) ottimizzati per la configurazione del dispositivo di ogni utente nello stesso dell'elenco di applicazioni. In questo modo gli utenti possono scaricare solo il codice e le risorse di cui hanno bisogno la tua app.
Per informazioni sulla configurazione della tua app per la distribuzione tramite sul Google Play Store, consulta Pacchettizzare e distribuire le app per 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 ulteriori informazioni, vedi
Scopri l'API target di Google Play
livello richiesto. Imposta il parametro
targetSdkVersion
al livello API 30 (Wear OS 3) per aiutarti a garantire che la tua app funzioni correttamente
all'ultima versione della piattaforma.
Per informazioni sulle richieste di rete e sull'accesso alla rete a larghezza di banda elevata, vedi Accesso alla rete e sincronizzazione su Wear OS
Definire un'app come app per Wear OS
Devi definire il tag
<uses-feature>
nel file manifest Android dell'app.
Per indicare che si tratta di un'app dell'orologio, aggiungi una voce simile alla seguente:
<manifest> ... <uses-feature android:name="android.hardware.type.watch" /> ... </manifest>
Identificare un'app come autonoma o non autonoma
Un'app dell'orologio viene considerata autonoma o non autonoma:
- Autonoma: un'app completamente indipendente che non richiede un'app per smartphone per il core. le funzionalità di machine learning. Anche se "Apri sul telefono" i prompt sono accettabili, l'app deve fornire consente agli utenti di completare una funzione dell'app, ad esempio un link breve o un codice QR, senza dover dipendere su uno smartphone con tethering.
- Non autonoma: un'app dipendente che richiede un'app su un telefono o un altro dispositivo per funzionalità principali. Questa opzione è ideale per le app che non possono essere facilmente Fornire un mezzo alternativo, come un codice QR o un link breve, per per completare una funzione principale dell'app, come l'autenticazione.
Nota: anche per le app non autonome, gli utenti possono installare Wear OS prima dell'app mobile. Pertanto, se l'app Wear OS rileva che dispositivo portatile nelle vicinanze non dispone dell'app complementare necessaria, chiedere all'utente per installare l'app complementare.
Google verifica l'accuratezza dello stato autonomo di un'app durante l'app in fase di pubblicazione. Questo valore influisce sulla visibilità delle app all'interno del Play Store su Dispositivi senza tethering, ad esempio i dispositivi Wear OS non accoppiati al dispositivo portatile dispositivi mobili. App non autonome, nonché app che gli sviluppatori hanno erroneamente contrassegnarle come "autonome", ovvero non sono disponibili per gli utenti su queste reti dispositivi mobili.
Nell'app per Wear OS, imposta il valore dell'elemento
meta-data
com.google.android.wearable.standalone
nel file manifest di Android per dichiarare se la tua app è autonoma o non autonoma.
Se l'app dell'orologio è un'app autonoma e completamente indipendente, indica
al Google Play Store impostando il parametro
valore da com.google.android.wearable.standalone
a true
:
<application> ... <meta-data android:name="com.google.android.wearable.standalone" android:value="true" /> ... </application>
Se l'app dell'orologio non è autonoma e dipende da un'altra app per le funzionalità principali,
imposta il valore di com.google.android.wearable.standalone
su
false
. Questo indica che l'app dell'orologio richiede un altro dispositivo, ma non
influisce sulla promozione della tua app sul Google Play Store.
Nota:
Anche se il valore di com.google.android.wearable.standalone
è
false
, l'orologio
può essere installata prima dell'installazione dell'app per smartphone.
Pertanto, se la tua app dell'orologio
rileva che uno smartphone accoppiato
non dispone dell'app per smartphone necessaria, come descritto in questa pagina,
chiedere all'utente di installare l'app per smartphone.
Archiviazione di codice e dati condivisi
Il codice può essere condiviso tra un'app per Wear OS e un'app per smartphone. Ad esempio, un codice comune per il networking può trovarsi in una libreria condivisa.
Facoltativamente, inserisci il codice specifico di un fattore di forma può essere contenuto in un modulo a parte.
Puoi usare le API di archiviazione Android standard per archiviare i dati localmente, mentre su un telefono. Ad esempio, puoi utilizzare SharedPreferences API o la stanza virtuale libreria di persistenza.
Rileva la tua app su un altro dispositivo
L'app dell'orologio e l'app per smartphone corrispondente possono rilevare se l'altra app è disponibile.
Le app dello smartphone e dell'orologio possono utilizzare
CapabilityClient
per pubblicizzare la sua 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
nel cloud, CapabilityClient
consente ad altri
che le app lo rilevino. Per ulteriori informazioni, vedi
Funzionalità pubblicitarie.
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 dell'orologio che richiedono presenza dell'app per smartphone complementare per funzionare correttamente.
Devi controllare se il Play Store è disponibile su del dispositivo, in quanto non tutti i telefoni, ad esempio gli iPhone, supportano Play Store.
Le seguenti sezioni descrivono le best practice per due scenari:
- L'app autonoma dell'orologio richiede l'app per smartphone.
- L'app per smartphone richiede l'app autonoma dell'orologio.
Puoi anche consultare
Esempio di helper datalayer, che mostra come utilizzare il valore
.
Librerie helper Datalayer, parte di
Orologo. Questi helper consentono di monitorare la connessione tra un dispositivo portatile
dispositivo e un dispositivo Wear OS.
Per ulteriori informazioni
sui corsi descritti nella sezione seguente, consulta
Riferimento API Wear OS.
Tale riferimento include anche informazioni sul
PhoneTypeHelper
, che contiene una classe
getPhoneDeviceType()
che consente alle tue
L'app per Wear OS controlla se uno smartphone accoppiato è un dispositivo Android o iOS.
Specifica i nomi delle funzionalità per il rilevamento delle tue app
Per l'app corrispondente a ogni tipo di dispositivo (orologio o smartphone), specifica un
stringa univoca per il nome della funzionalità nella
res/values/wear.xml
.
Ad esempio, nel modulo per dispositivi mobili, 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
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 ulteriori informazioni, vedi Funzionalità pubblicitarie.
Rilevamento delle app e apertura di un URL da un orologio
L'app dell'orologio può rilevare se lo smartphone accoppiato a un utente ha il tuo app per smartphone. Procedi nel seguente modo:
-
Utilizza la
CapabilityClient
per controllare se l'app per smartphone è installata sullo smartphone accoppiato. Per ulteriori informazioni, consulta Esempio di helper Datalayer su GitHub. -
Se l'app Telefono non è installata sullo smartphone, utilizza
PhoneDeviceType.getPhoneDeviceType()
per controllare il tipo di telefono. Per informazioni dettagliate, consulta la sezione che segue. -
Se
PhoneDeviceType.DEVICE_TYPE_ANDROID
viene restituito, il telefono è un telefono Android. ChiamaRemoteActivityHelper.startRemoteActivity()
sul dispositivo Wear OS per apri il Play Store sullo smartphone. Utilizza l'URI del mercato per il tuo telefono che potrebbe essere diverso dall'URI dell'app Wear. Ad esempio, utilizza un URI del mercato come:market://details?id=com.example.android.wearable.wear.finddevices
. -
Se
PhoneDeviceType.DEVICE_TYPE_IOS
viene restituito, il telefono è un telefono iOS senza Negozio disponibile. Apri l'App Store sull'iPhone. chiamandoRemoteActivityHelper.startRemoteActivity()
su Wear Dispositivo con sistema operativo. Puoi specificare l'URL iTunes dell'app, ad esempiohttps://itunes.apple.com/us/app/yourappname
.Da Wear OS, non puoi determinare in modo programmatico se l'app per smartphone sia installata su un dispositivo iOS. Come best practice, fornisci all'utente di attivare manualmente l'apertura dell'App Store.
Nota: utilizza l'API RemoteActivityHelper
descritta in precedenza per
specificare di aprire qualsiasi URL sullo smartphone dallo smartwatch,
e che non servono app per smartphone.
Dettagli per il rilevamento del tipo di smartphone accoppiato
Ecco uno snippet che utilizza il metodo getPhoneDeviceType()
per
controlla il tipo di smartphone a cui è accoppiato lo smartwatch:
Kotlin
var phoneDeviceType: Int = PhoneDeviceType.getPhoneDeviceType(context)
Java
int phoneDeviceType = PhoneDeviceType.getPhoneDeviceType(context);
Il valore restituito da getPhoneDeviceType()
è uno dei seguenti:
Valore restituito | Descrizione |
---|---|
DEVICE_TYPE_ANDROID
|
Lo smartphone accoppiato è un dispositivo Android. |
DEVICE_TYPE_IOS
|
Lo smartphone accoppiato è un dispositivo iOS. |
DEVICE_TYPE_UNKNOWN
|
Lo smartphone accoppiato è un dispositivo sconosciuto. |
DEVICE_TYPE_ERROR
|
Si è verificato un errore durante la determinazione del tipo di smartphone accoppiato. un altro controllo in un secondo momento. |
Rilevamento di app da uno smartphone Android
Il tuo smartphone Android può rilevare se i dispositivi Wear OS di un utente hanno il tuo dell'orologio. Procedi nel seguente modo:
-
L'utilizzo del
NodeClient
, trova tutti gli orologi connessi al telefono. Per ulteriori informazioni, consulta Esempio di helper Datalayer su GitHub. -
L'utilizzo del
CapabilityClient
, controlla quali orologi dell'utente hanno l'app installata. -
Se la tua app non è installata su tutti gli orologi dell'utente, consentigli
apri il Play Store sui restanti dispositivi Wear OS dallo smartphone utilizzando
il metodo
RemoteActivityHelper.startRemoteActivity()
. Utilizza l'URI del mercato per l'app per Wear OS, che potrebbe essere diverso dall'URI dell'app del telefono. Ad esempio, utilizza un URI mercato quali:market://details?id=com.example.android.wearable.wear.finddevices
.
Dati sulla posizione degli smartwatch accoppiati ad iPhone
Per gli orologi accoppiati con iPhone, utilizza Fused Location Provider (FLP) per ottenere i dati sulla posizione sullo smartwatch. Per ulteriori informazioni, vedi Rileva la posizione su Wear OS.
Se lo smartphone accoppiato è disponibile, FLP lo utilizza per dati sulla posizione.
Ottenere solo i dati necessari
In genere, quando si ottiene dati da internet, si ottiene solo i dati necessari. Altrimenti, potresti introdurre latenza, memoria e uso della batteria.
Quando uno smartwatch è connesso tramite una connessione Bluetooth LE, l'app potrebbe hanno accesso a una larghezza di banda di soli 4 kilobyte al secondo, sull'orologio. Pertanto, si consiglia di procedere nel seguente modo:
- Controlla le richieste e le risposte di rete alla ricerca di dati aggiuntivi necessaria per un'app per smartphone.
- Riduci le immagini di grandi dimensioni prima di inviarle tramite una rete a uno smartwatch.
Per i casi in cui è necessaria una rete a larghezza di banda elevata, vedi Accesso alla rete a larghezza di banda elevata.
Altri esempi di codice
La L'esempio di helper Datalayer dimostra ulteriormente l'utilizzo delle API descritte in questa pagina.