Ein Zifferblatt ist ein Dienst, der in einer Wear OS-App verpackt ist. Wenn ein Nutzer ein verfügbares Zifferblatt auswählt, wird das Zifferblatt angezeigt und die Dienst-Callback-Methoden werden aufgerufen.
Wenn ein Nutzer eine Wear-App mit Zifferblättern installiert, sind diese über die Zifferblattauswahl auf der Smartwatch 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 eingeschlossen werden, und wie du einen Zifferblattdienst implementierst.
Zifferblattprojekt erstellen
Hinweis:Für die Wear OS-Entwicklung empfehlen wir Android Studio, da dieses Tool die Projekteinrichtung, die Einbindung von Bibliotheken und die Paketerstellung vereinfacht.
Führe die folgenden Schritte aus, um in Android Studio ein Projekt für dein Zifferblatt zu erstellen:
- Klicken Sie auf Datei > Neu > Neues Projekt.
- Wähle im Fenster Projektvorlage auswählen den Tab Wear aus. Wähle dann in der Liste der Optionen Watch Face aus und klicke auf Weiter.
- Übernehmen Sie im Fenster Projekt konfigurieren die Standardwerte und klicken Sie auf Fertigstellen.
Android Studio erstellt ein Projekt mit einem app
-Modul für deinen Zifferblattdienst.
Abhängigkeiten
Android Studio fügt den build.gradle
-Dateien automatisch die erforderlichen Abhängigkeiten hinzu. Die Abhängigkeiten enthalten die Bibliothek für AndroidX-Zifferblatt. Weitere Informationen zu dieser Bibliothek finden Sie im
Codebeispiel auf GitHub.
API-Referenz der Wearable-Supportbibliothek
Die Referenzdokumentation enthält detaillierte Informationen zu den Klassen, die Sie zum Implementieren von Zifferblättern verwenden. Informationen zur Wearable-Supportbibliothek findest du in der API-Referenzdokumentation.
Deklarieren von Berechtigungen
Für ein Zifferblatt ist die Berechtigung WAKE_LOCK
erforderlich.
Füge den Manifestdateien der Wear OS-App und der Smartphone-App unter dem Element manifest
die folgende Berechtigung hinzu:
<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ützen
Du musst dein Zifferblatt verfügbar machen, bevor der Nutzer entsperrt wird. Folge dazu der Anleitung für den direkten Start:
- Legen Sie das Attribut
android:directBootAware
für Ihren Dienst in Ihrem Manifest auftrue
fest. - Dein Zifferblatt sollte Informationen im mit dem Gerät verschlüsselten Speicher speichern.
Dienst- und Callback-Methoden implementieren
Zifferblätter werden in Wear OS als WatchFaceService
implementiert.
Für die Implementierung von WatchFaceService
müssen drei Objekte erstellt werden: UserStyleSchema
, ComplicationSlotsManager
und WatchFace
.
Zum Angeben dieser drei Objekte werden drei abstrakte Methoden aus WatchFaceService
überschrieben, wie im folgenden Beispiel gezeigt:
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 = // ... }
Zifferblattdienst registrieren
Nachdem du den Zifferblattdienst implementiert hast, registriere die Implementierung in der Manifestdatei der Wearable-App. Wenn Nutzer diese App installieren, nutzt das System die Informationen zum Dienst, um das Zifferblatt in der Wear OS Companion App und in der Zifferblattauswahl auf dem Wearable verfügbar zu machen.
Im folgenden Beispiel wird gezeigt, wie eine Zifferblattimplementierung unter dem Element
<application>
registriert wird:
<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 verwenden das Vorschaubild, das durch den Metadateneintrag com.google.android.wearable.watchface.preview_circular
definiert ist, wenn Nutzern alle auf dem Gerät installierten Zifferblätter angezeigt werden. Um dieses Drawable zu erhalten, musst du das Zifferblatt auf deinem Wear OS-Gerät oder in einer Emulatorinstanz ausführen und einen Screenshot erstellen. Auf Wear-Geräten mit HDPI-Bildschirmen ist das Vorschaubild in der Regel 320 × 320 Pixel groß.
Der Metadateneintrag android.service.wallpaper
gibt die Ressourcendatei watch_face.xml
an, die ein wallpaper
-Element enthält, wie im folgenden Beispiel gezeigt:
<?xml version="1.0" encoding="UTF-8"?> <wallpaper xmlns:android="http://schemas.android.com/apk/res/android" />
Ihre Wearable-App kann mehrere Zifferblatt haben. Du musst der Manifestdatei der Wearable-App für jede deiner Zifferblattimplementierungen einen Diensteintrag hinzufügen.
Weitere Informationen
Weitere Informationen finden Sie in den folgenden Ressourcen: