App Wear OS autonome e non autonome

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:

  1. Utilizza la CapabilityClient per controllare se l'app per smartphone è installata sullo smartphone accoppiato. Per ulteriori informazioni, consulta Esempio di helper Datalayer su GitHub.
  2. 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.
  3. Se PhoneDeviceType.DEVICE_TYPE_ANDROID viene restituito, il telefono è un telefono Android. Chiama RemoteActivityHelper.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.
  4. Se PhoneDeviceType.DEVICE_TYPE_IOS viene restituito, il telefono è un telefono iOS senza Negozio disponibile. Apri l'App Store sull'iPhone. chiamando RemoteActivityHelper.startRemoteActivity() su Wear Dispositivo con sistema operativo. Puoi specificare l'URL iTunes dell'app, ad esempio https://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:

  1. L'utilizzo del NodeClient, trova tutti gli orologi connessi al telefono. Per ulteriori informazioni, consulta Esempio di helper Datalayer su GitHub.
  2. L'utilizzo del CapabilityClient, controlla quali orologi dell'utente hanno l'app installata.
  3. 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.