Ein Zifferblatt ist ein Dienst die in einer Wear OS-App verpackt sind. Wenn ein Nutzer ein verfügbares Zifferblatt auswählt, wird das Zifferblatt Callback-Methoden des Dienstes aufgerufen.
Wenn ein Nutzer eine Wear-App mit Zifferblättern installiert, wird die Smartwatch Zifferblätter sind auf der Uhr über die Zifferblattauswahl verfügbar. Alternativ kann der Nutzer ein Zifferblatt aus einer Companion-App auf dem gekoppelten Smartphone auswählen.
Auf dieser Seite wird beschrieben, wie du ein Wear OS-Projekt so konfigurierst, dass Zifferblätter enthalten um ein Zifferblatt zu implementieren.
Zifferblatt-Projekt erstellen
Hinweis:Wir empfehlen die Verwendung von Android Studio für die Wear OS-Entwicklung, da Sie umfasst die Projekteinrichtung, die Einbindung von Bibliotheken und die Paketerstellung.
Führen Sie die folgenden Schritte aus, um Projekt erstellen in Android Studio für Ihr Zifferblatt:
- Klicken Sie auf Datei > Neu > Neues Projekt.
- Wählen Sie im Fenster Projektvorlage auswählen die Option den Tab Wear und wählen Sie Zifferblatt und klicken Sie in der Liste der Optionen auf Weiter.
- Akzeptieren Sie die Änderungen im Fenster Projekt konfigurieren. und klicken Sie auf Fertigstellen.
Android Studio erstellt ein Projekt mit einem app
-Modul für den Zifferblattdienst.
Abhängigkeiten
Android Studio fügt die erforderlichen Abhängigkeiten automatisch in build.gradle
hinzu
Dateien. In den Abhängigkeiten ist Folgendes enthalten:
AndroidX
Zifferblattbibliothek sieh dir die
<ph type="x-smartling-placeholder"></ph>
Codebeispiel auf GitHub finden Sie weitere Informationen zu dieser Bibliothek.
API-Referenz der Wearable-Supportbibliothek
Die Referenzdokumentation enthält detaillierte Informationen zu den Klassen, die Sie für die Zifferblätter implementieren. In der API-Referenz für die Wearable-Supportbibliothek.
Erklärung von Berechtigungen
Für Zifferblätter ist die Berechtigung WAKE_LOCK
erforderlich.
Füge den Manifestdateien der Wear OS-App die folgende Berechtigung hinzu:
und die mobile App unter dem Element 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>
Direct-Boot-Unterstützung
Sie müssen Ihr Zifferblatt vor dem Entsperren durch den Nutzer verfügbar machen. Gehen Sie dazu so vor: Direct Boot-Anleitung:
- Setzen Sie das Attribut
android:directBootAware
für Ihren Dienst intrue
in deinem Manifest. - Auf deinem Zifferblatt sollten Informationen in gespeichert werden Verschlüsselter Speicher Ihres Geräts.
Dienst- und Callback-Methoden implementieren
Zifferblätter in Wear OS sind als
WatchFaceService
Für die Implementierung von WatchFaceService
müssen drei Objekte erstellt werden: ein
UserStyleSchema
, ComplicationSlotsManager
und
WatchFace
.
Diese drei Objekte werden angegeben, indem drei abstrakte Methoden aus
WatchFaceService
, wie im folgenden Beispiel gezeigt:
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 = // ...
}
Zifferblattdienst registrieren
Nachdem du den Zifferblattdienst implementiert hast, kannst du die Implementierung im Manifest registrieren der Wearable-App. Wenn Nutzer diese App installieren, verwendet das System die Informationen zu den Dienst, um das Zifferblatt im verfügbar zu machen. Wear OS-Companion-App und in der Zifferblattauswahl auf dem Wearable-Gerät
Das folgende Beispiel zeigt, wie die Implementierung eines Zifferblatts registriert wird.
im Bereich
<application>
-Element:
<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>
Die Companion-App „Wear OS by Google“ und die Zifferblattauswahl auf dem Wearable-Gerät verwenden die Vorabversion
durch den Metadateneintrag com.google.android.wearable.watchface.preview_circular
definiertes Bild, wenn
Nutzern werden alle auf dem Gerät installierten Zifferblätter angezeigt. Um dieses Drawable zu erhalten,
das Zifferblatt auf Ihrem Wear OS-Gerät oder in einer Emulatorinstanz ausführen und
einen Screenshot erstellen. Auf Wearable
Geräte mit HD-Bildschirmen, ist das Vorschaubild normalerweise 320 x 320 Pixel groß.
Der Metadateneintrag android.service.wallpaper
gibt die
Ressourcendatei watch_face.xml
, die ein wallpaper
enthält
-Element, wie im folgenden Beispiel gezeigt:
<?xml version="1.0" encoding="UTF-8"?>
<wallpaper xmlns:android="http://schemas.android.com/apk/res/android" />
Deine Wearable-App kann mehr als ein Zifferblatt enthalten. Sie müssen dem Feld Manifestdatei der Wearable-App für jede Zifferblattimplementierung.
Weitere Informationen
Weitere Informationen finden Sie in den folgenden verwandten Ressourcen:
- <ph type="x-smartling-placeholder"></ph> WatchFaceKotlin-Beispiel