App Wear standalone

Un’app Wear OS può funzionare indipendentemente da un telefono. Gli utenti possono completare le attività su un orologio, senza accesso a un telefono Android o iOS.

Fare riferimento alle seguenti risorse correlate:

  • Verificare l’esempio di app remota

Pianifica le tue app

Puoi utilizzare la funzione APK multipla (multi-APK) di Google Play per pubblicare più di un APK sotto lo stesso elenco di applicazioni. Un APK orologio dovrebbe essere distribuito utilizzando tale funzione; non incorporare un orologio APK in un telefono APK. Per informazioni sulla configurazione dell’app per la distribuzione tramite Google Play Store, consulta Imballaggio e distribuzione delle app Wear e modalità di funzionamento di più APK.

Nota: Per qualificarsi per la promozione nel Google Play Store on Wear (ovvero nel Play Store on-watch), la tua app deve funzionare indipendentemente da un telefono. iOS così come il supporto Android è richiesto.

Generalmente, il livello API minimo e di destinazione per un’app standalone e per Wear 2.0 è il livello 25. Il livello minimo di SDK può essere 23 solo se si utilizza lo stesso APK per Wear 1.0 e 2.0 (e quindi si ha un APK Wear 1.0 incorporato).

Nota: a causa di un problema di latenza che influisce sulla disponibilità di un’app su Wear 1.x watches, se costruisci un APK Wear 2.0 standalone e continuerai ad avere un APK Wear 1.0, fai entrambe le cose seguenti:

  • Fornire una versione standalone dell’APK Wear e
  • Continuare a incorporare una versione dell’APK Wear nell’APK del telefono

Attenzione: Se pubblichi un aggiornamento all’APK del telefono di produzione esistente che ha rimosso un APK Wear incorporato, gli utenti di produzione che aggiornano l’APK phone prima di installare l’APK Wear standalone perderanno l’app Wear esistente e i relativi dati. Se pubblichi un aggiornamento all’APK del telefono di produzione esistente, continua a incorporare l’APK dell’orologio in quell’APK del telefono.

Le autorizzazioni di runtime sono necessarie per le app standalone.

Per informazioni sulle richieste di rete e sull’accesso alla rete ad alta larghezza di banda, vedere Accesso alla rete e sincronizzazione.

Identifica un’app come standalone

Le app Wear devono avere un elemento meta-data nel file Manifest di Android, come figlio dell’elemento <application>. Il nome dell’elemento meta-data è com.google.android.wearable.standalone e il valore deve essere trueo false. L’elemento indica se l’app orologio è un’app autonoma e quindi non richiede un’app Android lato telefono per funzionare. Se l’impostazione per l’elemento è true, la tua app può essere resa disponibile nel Play Store sugli orologi abbinati agli iPhone, purché gli APK attivi in tutti i canali (ad esempio, nel canale beta) abbiano l’elemento impostato su true. Se non tutti i tuoi APK (alfa, beta e produzione) che sono attualmente serviti agli utenti hanno l’impostazione sopra, la tua app non sarà disponibile quando un utente esegue una ricerca su un orologio associato a un iPhone.

Un orologio app può essere considerato come uno dei seguenti:

  • Completamente indipendente di un app telefono
  • Semi-indipendenti (telefono app non è necessario e potrebbe fornire solo le caratteristiche opzionali)
  • dipende da un telefono app

Se un orologio app è completamente indipendente o semi-indipendente, è considerato autonomo di categoria. È necessario indicare questa categorizzazione per il Play store di Google, impostando il valore di questo meta-data elemento true:

<application>... <meta-data android:name="com.google.android.wearable.standalone" android:value="true" />...</application>

Dal momento che un applicazione standalone (che è indipendente o semi-indipendente app) può essere installato da un utente iPhone o un utente di un telefono Android che manca il Play Store, l’applicazione watch dovrebbe essere utilizzabile senza l’applicazione telefono.

Se un’app orologio dipende da un’app telefono, impostare il valore dell’elemento meta-datasopra a false. L’impostazione dell’elemento su false significa che l’app watch deve essere installata solo su un orologio abbinato a un telefono con il Play Store.

Nota: Anche se il valore è false, l’orologio app può essere installato prima che il telefono app è installato. Pertanto, se un’app orologio rileva che a un telefono compagno manca un’app telefono necessaria, l’app orologio dovrebbe richiedere all’utente di installare l’app telefono.

Definire un’app come app Wear

È necessario assicurarsi che il tag <uses-feature> sia definito nel file Manifest di Android nell’app. Deve indicare che si tratta di un’app watch, ad esempio android:name="android.hardware.type.watch" come segue:

<manifest>... <uses-feature android:name="android.hardware.type.watch" />...</manifest>

Codice condiviso e archiviazione dati

Il codice può essere condiviso tra un’app Wear e un’app Phone. Facoltativamente, il codice specifico per un fattore di forma può trovarsi in un modulo separato.

Ad esempio, il codice comune per la rete può trovarsi in una libreria condivisa.

È possibile utilizzare le API di archiviazione Android standard per archiviare i dati localmente, come si farebbe su un telefono. Ad esempio, è possibile utilizzare le API SharedPreferences o la libreria di persistenza della stanza.

Rileva la tua app su un altro dispositivo

L’app dell’orologio può rilevare se l’app del telefono corrispondente è disponibile e viceversa.

L’app del telefono o dell’orologio può utilizzare CapabilityClient per pubblicizzare la presenza dell’app su un dispositivo associato. Può farlo staticamente e dinamicamente. Quando un’app si trova su un nodo nella rete Wear di un utente (ad esempio, su un telefono, un orologio associato o nel cloud), CapabilityClient consente a un’altra app di rilevare se è installata. Per ulteriori informazioni, vedere Pubblicità funzionalità.

Se una delle tue app non riesce a rilevare l’altra, puoi abilitare un utente ad aprire l’elenco Play Store sul proprio dispositivo remoto. Questa è una soluzione per le app di orologi che richiedono la presenza dell’app del telefono compagno per funzionare correttamente. Un prerequisito è quello di verificare la presenza del Play Store sul dispositivo remoto.

Si noti che non tutti i telefoni supportano il Play Store (come iPhone, ecc.).

Questa sezione descrive le best practice per questi scenari:

  • L’app orologio standalone ha bisogno dell’app telefono
  • L’app telefono ha bisogno dell’app orologio standalone

Esamina l’esempio che mostra questa funzionalità. Per ulteriori informazioni sulle classi descritte di seguito, vedere il riferimento all’API Wear. Anche in quel riferimento ci sono informazioni sulla classe PhoneDeviceType, che contiene un metodo getPhoneDeviceType() che consente all’app Wear di verificare se un telefono compagno è un dispositivo Android o iOS.

Specificare i nomi delle funzionalità per il rilevamento delle app

Per l’app corrispondente a ciascun tipo di dispositivo (orologio o telefono), specificare 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:

Nel modulo wear, il file wear.xml includerebbe un valore diverso per il nome della capacità, ad esempio il seguente:

Per ulteriori informazioni, vedere Pubblicità funzionalità.

Rilevamento dell’app e apertura di un URL da un orologio

L’app dell’orologio può rilevare se il telefono compagno di un utente ha l’app del telefono:

  1. Utilizzare CapabilityClient per verificare se l’app del telefono è installata sul telefono associato. Per ulteriori informazioni, vedere l’esempio.
  2. Se l’app del telefono non è installata sul telefono, utilizzare il metodo PhoneDeviceType.getPhoneDeviceType() per verificare il tipo di telefono.
  3. Se viene restituito PhoneDeviceType.DEVICE_TYPE_ANDROID, il telefono è un telefono Android. Chiama RemoteIntent.startRemoteActivity() sul dispositivo Wear per aprire l’app store sul telefono. Utilizzare l’URI di mercato per l’app del telefono (che potrebbe essere diversa dall’URI del telefono). Ad esempio, utilizzare un URI di mercato come: market://details?id=com.example.android.wearable.wear.finddevices
  4. Se viene restituito PhoneDeviceType.DEVICE_TYPE_IOS, significa che il telefono è un telefono iOS (senza Play Store disponibile). Apri l’App Store sull’iPhone chiamando RemoteIntent.startRemoteActivity() sul dispositivo Wear. Puoi specificare l’URL di iTunes della tua app, ad esempio . Su un iPhone, da Wear OS, non è possibile determinare a livello di programmazione se l’app del telefono è installata. Come best practice, fornire un meccanismo all’utente (ad esempio, un pulsante) per attivare manualmente l’apertura dell’App Store.

Si noti che utilizzando l’API RemoteIntent descritta sopra, è possibile specificare che qualsiasi URL sia aperto sul telefono dall’orologio e che non sia richiesta alcuna app telefonica.

Dettagli per rilevare il tipo di telefono cellulare associato

Ecco un frammento che utilizza il getPhoneDeviceType() metodo per controllare il tipo di telefono che l’orologio è abbinato:

Kotlin

var phoneDeviceType: Int = PhoneDeviceType.getPhoneDeviceType(context)

Java

int phoneDeviceType = PhoneDeviceType.getPhoneDeviceType(context);

Il valore restituito da getPhoneDeviceType() è uno dei metodi seguenti:

Valore di ritorno Descrizione
DEVICE_TYPE_ANDROID Il telefono compagno è un dispositivo Android.
DEVICE_TYPE_IOS Il telefono compagno è un dispositivo iOS.
DEVICE_TYPE_ERROR_UNKNOWN Si è verificato un errore nel determinare il tipo di telefono associato; un altro controllo dovrebbe essere fatto in seguito.

Rilevamento app a partire da un telefono Android

Il telefono Android in grado di rilevare se i dispositivi di usura di un utente hanno il vostro orologio app:

  1. Utilizzando il NodeClient, trovare tutti gli orologi collegati al telefono dell’utente. Per ulteriori informazioni, vedere l’esempio.
  2. Utilizzando CapabilityClient, verificare quale degli orologi dell’utente hanno installato l’app.
  3. Se la tua app non è installata su tutti gli orologi dell’utente (confronta i risultati del passaggio 1 con i risultati del passaggio 2), consenti all’utente di aprire il Play Store sui dispositivi di usura rimanenti dal telefono tramite il metodo RemoteIntent.startRemoteActivity(). In particolare, utilizzare l’URI di mercato per l’app Wear(che potrebbe essere diverso dall’URI dell’app del telefono). Ad esempio, utilizzare un URI di mercato come: market://details?id=com.example.android.wearable.wear.finddevices

Dati sulla posizione per gli orologi associati a iPhone

Per gli orologi associati a iPhone, gli sviluppatori dovrebbero utilizzare il Fuse Location Provider (FLP) per ottenere i dati sulla posizione di un orologio. Vedere Rilevamento posizione su Usura.

Se il telefono companion è disponibile, FLP utilizza il telefono companion per i dati sulla posizione.

Ottenere solo i dati necessari

Generalmente, quando si ottengono dati da Internet, si dovrebbero ottenere solo i dati necessari. In caso contrario, è possibile introdurre latenza non necessaria, uso della memoria e uso della batteria.

Quando un orologio è collegato tramite una connessione Bluetooth LE, l’app potrebbe avere accesso a una larghezza di banda di soli 4 kilobyte al secondo, a seconda dell’orologio. Pertanto, sono raccomandati i seguenti passaggi:

  • Verifica le richieste di rete e le risposte per i dati aggiuntivi che sono solo per un’app del telefono
  • Riduci le immagini di grandi dimensioni prima di inviarle su una rete a un orologio

Per i casi in cui è necessaria una rete ad alta larghezza di banda, vedi Accesso alla rete ad alta larghezza di banda.

Esempi di codice aggiuntivo

L’esempio WearVerifyRemoteApp dimostra ulteriormente l’uso delle API trattate in questa pagina.

You might also like

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.