Creare un servizio per il quadrante

Un quadrante è un servizio in un'app per Wear OS. Quando un utente seleziona un quadrante disponibile, questo viene visualizzato e la vengono richiamati metodi di callback del servizio.

Quando un utente installa un'app Wear con quadranti, l'orologio i quadranti siano disponibili sullo smartwatch utilizzando il selettore dei quadranti. In alternativa, l'utente può selezionare un quadrante da un'app complementare sullo smartphone accoppiato.

In questa pagina viene descritto come configurare un progetto Wear OS per includere i quadranti e come per implementare un servizio per i quadranti.

Creare un progetto per il quadrante

Nota: ti consigliamo di utilizzare Android Studio per lo sviluppo di Wear OS, perché offre configurazione del progetto, inclusione delle librerie e comodità di presentazione.

Completa i seguenti passaggi per crea un progetto in Android Studio per il tuo quadrante:

  1. Fai clic su File > Nuovo > Nuovo progetto.
  2. Nella finestra Seleziona un modello di progetto, seleziona la scheda Wear, quindi seleziona Quadrante dall'elenco di opzioni e fai clic su Avanti.
  3. Nella finestra Configura il tuo progetto, accetta i valori predefiniti e fai clic su Fine.

Android Studio crea un progetto con un modulo app per il tuo servizio per il quadrante.

Dipendenze

Android Studio aggiunge automaticamente le dipendenze obbligatorie nel tuo build.gradle . Tra le dipendenze c'è il AndroidX raccolta di quadranti orologio; vedi il . esempio di codice su GitHub per i dettagli su questa libreria.

Riferimento API Wearable Support Library

La documentazione di riferimento fornisce informazioni dettagliate sui corsi che utilizzi per implementare i quadranti. Esplora Riferimento API documentazione per la libreria di supporto Wearable.

Dichiara le autorizzazioni

Un quadrante richiede l'autorizzazione WAKE_LOCK. Aggiungi la seguente autorizzazione ai file manifest dell'app per Wear OS e l'app per dispositivi mobili sotto l'elemento manifest:

<manifest ...>
    <uses-permission
        android:name="android.permission.WAKE_LOCK" />

    <!-- Required for complications to receive complication data and open the provider chooser. -->
    <uses-permission
        android:name="com.google.android.wearable.permission.RECEIVE_COMPLICATION_DATA"/>
    ...
</manifest>

Supporta l'avvio diretto

Devi rendere disponibile il quadrante prima dello sblocco dell'utente seguendo Indicazioni per l'avvio diretto:

  1. Imposta l'attributo android:directBootAware su true per il tuo servizio in del file manifest.
  2. Il quadrante deve memorizzare le informazioni in archiviazione criptata del dispositivo.

Implementare il servizio e i metodi di callback

I quadranti in Wear OS sono implementati come WatchFaceService L'implementazione di un WatchFaceService richiede la creazione di tre oggetti: UserStyleSchema, ComplicationSlotsManager e un WatchFace.

Questi tre oggetti vengono specificati eseguendo l'override di tre metodi astratti WatchFaceService, mostrata nell'esempio seguente:

Kotlin

class CustomWatchFaceService : WatchFaceService() {

    /**
     * The specification of settings the watch face supports.
     * This is similar to a database schema.
     */
    override fun createUserStyleSchema(): UserStyleSchema = // ...

    /**
     * The complication slot configuration for the watchface.
     */
    override fun createComplicationSlotsManager(
        currentUserStyleRepository: CurrentUserStyleRepository
    ): ComplicationSlotsManager = // ...

    /**
     * The watch face itself, which includes the renderer for drawing.
     */
    override suspend fun createWatchFace(
        surfaceHolder: SurfaceHolder,
        watchState: WatchState,
        complicationSlotsManager: ComplicationSlotsManager,
        currentUserStyleRepository: CurrentUserStyleRepository
    ): WatchFace = // ...

}

Registra il servizio dei quadranti

Dopo aver implementato il servizio del quadrante, registra l'implementazione nel manifest dell'app indossabile. Quando gli utenti installano questa app, il sistema utilizza le informazioni su il servizio per rendere disponibile il quadrante nell' App complementare per Wear OS e nel selettore del quadrante sul dispositivo indossabile.

L'esempio seguente mostra come registrare un'implementazione del quadrante nel Elemento <application>:

<service
    android:name=".AnalogWatchFaceService"
    android:label="@string/analog_name"
    android:permission="android.permission.BIND_WALLPAPER" >
    <meta-data
        android:name="android.service.wallpaper"
        android:resource="@xml/watch_face" />
    <meta-data
        android:name="com.google.android.wearable.watchface.preview_circular"
        android:resource="@drawable/preview_analog_circular" />
    <intent-filter>
        <action android:name="android.service.wallpaper.WallpaperService" />
        <category
            android:name=
            "com.google.android.wearable.watchface.category.WATCH_FACE" />
    </intent-filter>
</service>

L'app complementare Wear OS by Google e il selettore del quadrante sul dispositivo indossabile usano l'anteprima immagine definita dalla voce dei metadati com.google.android.wearable.watchface.preview_circular quando presentando agli utenti tutti i quadranti installati sul dispositivo. Per ottenerlo, esegui il quadrante sul tuo dispositivo Wear OS o in un'istanza dell'emulatore e acquisisci uno screenshot. Su Wear su dispositivi dotati di schermi hdpi, l'immagine di anteprima ha in genere una dimensione di 320 x 320 pixel.

La voce di metadati android.service.wallpaper specifica watch_face.xml file di risorse contenente un wallpaper , come illustrato nell'esempio seguente:

<?xml version="1.0" encoding="UTF-8"?>
<wallpaper xmlns:android="http://schemas.android.com/apk/res/android" />

L'app indossabile può contenere più di un quadrante. Devi aggiungere una voce di servizio alla un file manifest dell'app indossabile per ogni implementazione del quadrante.

Consulta le seguenti risorse correlate: