Utwórz usługę tarczy zegarka

Tarcza zegarka to usługa w aplikacji na Wear OS. Gdy użytkownik wybierze dostępną tarczę, pojawi się tarcza metody wywołania zwrotnego usługi.

Gdy użytkownik zainstaluje aplikację Wear z tarczami, tarcze są dostępne na zegarku. Użytkownik może też wybrać tarczę zegarka z aplikacji towarzyszącej na sparowanym telefonie.

Z tego artykułu dowiesz się, jak skonfigurować projekt na Wear OS, aby uwzględniać tarcze zegarka wdrożyć usługę tarczy zegarka.

Tworzenie projektu tarczy zegarka

Uwaga: do programowania na Wear OS zalecamy używanie Android Studio. zapewnia konfigurację projektu, włączenie biblioteki i ułatwienia w tworzeniu pakietów.

Wykonaj te czynności, aby utwórz projekt w Android Studio na tarczy zegarka:

  1. Kliknij Plik > Nowe > Nowy projekt.
  2. W oknie Wybierz szablon projektu kliknij kartę Wear, a następnie wybierz Tarczę zegarka z listy opcji i kliknij Dalej.
  3. W oknie Configure your project (Skonfiguruj projekt) zaakceptuj domyślne i kliknij Zakończ.

Android Studio utworzy projekt z modułem app na potrzeby usługi tarczy zegarka.

Zależności

Android Studio automatycznie dodaje wymagane zależności w narzędziu build.gradle. . Zależności zawierają AndroidX biblioteka tarcz zegarka, zobacz przykładowy kod na GitHubie.

Dokumentacja API biblioteki pomocy do noszenia

Dokumentacja zawiera szczegółowe informacje o klasach, których używasz do i wdrożyć tarcze zegarka. Przeglądaj Dokumentacja API dokumentacji biblioteki pomocy dotyczącej urządzeń do noszenia.

Deklarowanie uprawnień

Tarcza zegarka wymaga uprawnienia WAKE_LOCK. Dodaj te uprawnienia do plików manifestu aplikacji na Wear OS oraz aplikację na telefon komórkowy w elemencie 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>

Obsługa bezpośredniego rozruchu

Musisz udostępnić tarczę zegarka przed odblokowaniem użytkownika. W tym celu wykonaj Wskazówki dotyczące bezpośredniego uruchamiania:

  1. Ustaw wartość atrybutu android:directBootAware na true dla swojej usługi w pliku manifestu.
  2. Tarcza zegarka powinna przechowywać informacje w: zaszyfrowanego urządzenia.

Wdrażanie metod usługi i wywołań zwrotnych

Tarcze zegarka w Wear OS są zaimplementowane jako WatchFaceService Implementacja obiektu WatchFaceService wymaga utworzenia 3 obiektów: UserStyleSchema, ComplicationSlotsManager i WatchFace

Te 3 obiekty są określane przez zastąpienie 3 metod abstrakcyjnych z WatchFaceService w tym przykładzie:

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 = // ...

}

Rejestrowanie usługi tarczy zegarka

Po wdrożeniu usługi tarczy zegarka zarejestruj implementację w pliku manifestu z aplikacji do noszenia. Gdy użytkownicy zainstalują tę aplikację, system użyje informacji o: aby udostępnić tarczę zegarka w aplikacji towarzyszącej Wear OS i w selektorze tarcz zegarka na urządzeniu do noszenia.

Z przykładu poniżej dowiesz się, jak zarejestrować implementację tarczy zegarka w Element <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>

Aplikacja towarzysząca Wear OS by Google i selektor tarcz zegarka na urządzeniu do noszenia korzystają z wersji testowej obraz zdefiniowany przez wpis metadanych com.google.android.wearable.watchface.preview_circular, gdy wyświetlanie użytkownikom wszystkich tarcz zegarka zainstalowanych na urządzeniu. Aby uzyskać ten obiekt rysowalny, uruchom tarczę zegarka na urządzeniu z Wear OS lub w instancji emulatora – zrobienie zrzutu ekranu. Na Wear urządzeń wyposażonych w ekran hdpi, obraz podglądu ma zwykle 320 x 320 pikseli.

Wpis metadanych android.service.wallpaper określa watch_face.xml plik zasobów, który zawiera wallpaper jak w tym przykładzie:

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

Aplikacja do noszenia może zawierać więcej niż 1 tarczę zegarka. Do parametru plik manifestu aplikacji do noszenia dla każdej implementacji tarczy zegarka.

Zapoznaj się z tymi powiązanymi materiałami: