Tarcza zegarka to usługa zapakowana w aplikację na Wear OS. Gdy użytkownik wybierze dostępną tarczę, zostaną one wyświetlone i wykonane są metody wywołania zwrotnego usługi.
Gdy użytkownik zainstaluje aplikację na Wear, która ma tarcze zegarka, będą one dostępne na zegarku za pomocą selektora tarcz. Użytkownik może też wybrać tarczę w aplikacji towarzyszącej na sparowanym telefonie.
Z tego artykułu dowiesz się, jak skonfigurować projekt na Wear OS tak, aby obejmował tarcze zegarka, oraz jak wdrożyć usługę tarczy zegarka.
Tworzenie projektu tarczy zegarka
Uwaga: na potrzeby programowania na Wear OS zalecamy używanie Android Studio, ponieważ zapewnia ono konfigurację projektu, uwzględnianie biblioteki i ułatwienia tworzenia pakietów.
Aby utworzyć projekt dla tarczy zegarka w Android Studio, wykonaj te czynności:
- Kliknij File (Plik) > New (Nowy) > New project (Nowy projekt).
- W oknie Wybierz szablon projektu wybierz kartę Wear, z listy opcji wybierz Tarcza zegarka i kliknij Dalej.
- W oknie Skonfiguruj projekt zaakceptuj wartości 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 plikach build.gradle
. Zależności obejmuje biblioteka tarcz zegarka z AndroidemX. Więcej informacji o tej bibliotece znajdziesz w
przykładowym kodzie na GitHubie.
Dokumentacja interfejsu API biblioteki pomocy do urządzeń do noszenia
Dokumentacja referencyjna zawiera szczegółowe informacje o klasach, których używasz do implementacji tarcz zegarka. Przejrzyj dokumentację referencyjną interfejsu API, aby znaleźć bibliotekę pomocy do urządzeń do noszenia.
Deklarowanie uprawnień
Tarcza zegarka wymaga uprawnienia WAKE_LOCK
.
Dodaj te uprawnienia do plików manifestu aplikacji na Wear OS i aplikacji 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 rozruchu bezpośredniego
Musisz udostępnić tarczę przed jej odblokowaniem przez użytkownika, postępując zgodnie ze wskazówkami dotyczącymi rozruchu bezpośredniego:
- Ustaw atrybut
android:directBootAware
natrue
dla usługi w pliku manifestu. - Tarcza zegarka powinna przechowywać informacje w zaszyfrowanej pamięci urządzenia.
Implementacja usług i metod wywołania zwrotnego
Tarcze zegarka w Wear OS są zaimplementowane jako WatchFaceService
.
Implementacja WatchFaceService
wymaga utworzenia 3 obiektów: UserStyleSchema
, ComplicationSlotsManager
i WatchFace
.
Te 3 obiekty są określane przez zastąpienie 3 metod abstrakcyjnych z WatchFaceService
, które widać 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 zaimplementowaniu usługi tarczy zegarka zarejestruj implementację w pliku manifestu aplikacji na urządzenie do noszenia. Gdy użytkownik zainstaluje aplikację, system wykorzysta informacje o tej usłudze, aby udostępnić ją w aplikacji towarzyszącej Wear OS i w selektorze tarcz na urządzeniu do noszenia.
Poniższy przykład pokazuje, jak zarejestrować implementację tarczy zegarka za pomocą elementu
<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 na Wear OS by Google i selektor tarczy zegarka na urządzeniu do noszenia używają obrazu z podglądu zdefiniowanego we wpisie metadanych com.google.android.wearable.watchface.preview_circular
podczas prezentowania użytkownikom wszystkich tarcz zegarka zainstalowanych na urządzeniu. Aby uzyskać ten element, uruchom tarczę zegarka na urządzeniu z Wear OS lub emulatorze i zrób zrzut ekranu. Na urządzeniach Wear z ekranami hdpi obraz podglądu ma zazwyczaj rozmiar 320 x 320 pikseli.
Wpis metadanych android.service.wallpaper
określa plik zasobów watch_face.xml
, który zawiera element wallpaper
. 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ż jedną tarczę zegarka. W przypadku każdej implementacji tarczy zegarka musisz dodać wpis usługi do pliku manifestu aplikacji na urządzenie do noszenia.
Przydatne materiały
Zapoznaj się z tymi powiązanymi materiałami: