Wear-Zifferblatt
Hinweis : Das Watch Face-Format ist erforderlich, damit Zifferblätter auf Geräten mit Wear OS 5 oder höher vorinstalliert werden können und für alle neuen Zifferblätter, die bei Google Play veröffentlicht werden.
Ab Januar 2026 ist das Watch Face-Format erforderlich, damit Zifferblätter auf allen Wear OS-Geräten installiert werden können.
Weitere Informationen zu den Änderungen für Nutzer finden Sie in diesem Hilfeartikel.
| Letzte Aktualisierung | Stabile Release | Releasekandidat | Beta-Release | Alpha-Release |
|---|---|---|---|---|
| 17. Dezember 2025 | 1.2.1 | - | 1.3.0-beta01 | - |
Abhängigkeiten deklarieren
Wenn Sie eine Abhängigkeit von Wear hinzufügen möchten, müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.
Fügen Sie die Abhängigkeiten für die benötigten Artefakte der Datei build.gradle für Ihre App oder Ihr Modul hinzu:
Groovy
dependencies { // Use to implement wear watchfaces implementation "androidx.wear.watchface:watchface:1.2.1" // Use to implement wear watchface complications implementation "androidx.wear.watchface:watchface-complications-data-source:1.2.1" // (Kotlin-specific extensions) implementation "androidx.wear.watchface:watchface-complications-data-source-ktx:1.2.1" // Use to implement a watchface style and complication editor implementation "androidx.wear.watchface:watchface-editor:1.2.1" // Can use to render complications. // This library is optional and watchfaces may have custom implementation for rendering // complications. implementation "androidx.wear.watchface:watchface-complications-rendering:1.2.1" }
Kotlin
dependencies { // Use to implement wear watchfaces implementation("androidx.wear.watchface:watchface:1.2.1") // Use to implement wear watchface complications implementation "androidx.wear.watchface:watchface-complications-data-source:1.2.1" // (Kotlin-specific extensions) implementation "androidx.wear.watchface:watchface-complications-data-source-ktx:1.2.1" // Use to implement a watchface style and complication editor implementation("androidx.wear.watchface:watchface-editor:1.2.1") // Can use to render complications. // This library is optional and watchfaces may have custom implementation for rendering // complications. implementation "androidx.wear.watchface:watchface-complications-rendering:1.2.1" }
Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.
Feedback
Ihr Feedback hilft uns, Jetpack zu verbessern. Wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben, lassen Sie es uns wissen. Bevor Sie ein neues Problem erstellen, sollten Sie sich jedoch die bereits gemeldeten Probleme in dieser Bibliothek ansehen. Wenn Sie sich einer Problemmeldung anschließen möchten, klicken Sie auf die Schaltfläche mit dem Stern.
Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.
Version 1.3
Version 1.3.0-beta01
17. Dezember 2025
androidx.wear.watchface:watchface-*:1.3.0-beta01 ist veröffentlicht. Version 1.3.0-beta01 enthält diese Commits.
Neue Funktionen
- Es wurde Unterstützung für statische Vorschau-Daten für Komplikationen hinzugefügt. Ein Komplikationsanbieter kann statische Vorschau-Daten in seinem Manifest angeben. Weitere Informationen finden Sie unter
androidx.wear.watchface.complications.data.parser.StaticPreviewDataParser. - Die Utility-Klasse
ComplicationTextFormattingwurde hinzugefügt, um Daten und Uhrzeiten so kurz wie möglich zu formatieren. Das ist nützlich für Komplikationen, bei denen der Platz sehr begrenzt ist.
API-Änderungen
- Das bisher experimentelle Attribut
Renderer.watchfaceColorsist jetzt privat. Für diese Property gibt es noch öffentliche Accessoren. (Ifdf60, b/409363281)
Fehlerkorrekturen
- Für Projekte, die mit Kotlin 2.0 veröffentlicht wurden, ist KGP 2.0.0 oder höher erforderlich. (I48968, b/407632515)
Version 1.3.0-alpha07
23. April 2025
androidx.wear.watchface:watchface-*:1.3.0-alpha07 ist veröffentlicht. Version 1.3.0-alpha07 enthält diese Commits.
Neue Funktionen
- Das UserStyle-Schema eines Zifferblatts kann schon seit einiger Zeit definiert werden und
ColorUserStyleSettingkann in XML definiert werden.
API-Änderungen
- Für Projekte, die mit Kotlin 2.0 veröffentlicht wurden, ist KGP 2.0.0 oder höher erforderlich. (Idb6b5)
- Die Watch Face Push API wurde hinzugefügt. Damit kann eine Wear OS-App ein Zifferblatt programmatisch auf einer Smartwatch installieren.
Fehlerkorrekturen
- Anbieter von Zifferblatt-Komplikationen, die Version 1.3.0-alpha06 verwenden, sollten ein Upgrade durchführen, da ein Absturzfehler mit
ComplicationDataSourceUpdateRequesterin der nächsten Version von WearOS behoben wurde.
Version 1.3.0-alpha06
26. März 2025
androidx.wear.watchface:watchface-*:1.3.0-alpha06 ist veröffentlicht. Version 1.3.0-alpha06 enthält diese Commits.
Neue Funktionen
- Die Wear-Zifferblatt-APIs (watchface, watchface-client, watchface-client-guava, watchface-complications-rendering, watchface-data, watchface-editor, watchface-editor-guava und watchface-style) wurden zugunsten des Wear-Zifferblattformats eingestellt und werden schließlich aus AndroidX entfernt. Die APIs für Komplikationen werden nicht eingestellt und bleiben erhalten. (Ice960)
- Die APIs für Zifferblätter können jetzt direkt mit
WearSDKkommunizieren. Das ist effizienter, da weniger IPC-Hops erforderlich sind.
Version 1.3.0-alpha05
15. Januar 2025
androidx.wear.watchface:watchface-*:1.3.0-alpha05 ist veröffentlicht. Version 1.3.0-alpha05 enthält diese Commits.
Neue Funktionen
Bei Zifferblättern können Nutzer Farben in der Regel über eine ListUserStyle auswählen. Das funktioniert zwar, aber die Symbole müssen per Bluetooth an den Companion-Editor gesendet werden, was ineffizient ist. Deshalb haben wir ColorUserStyleSetting eingeführt. Die Nutzlast ist eine Liste mit einer oder mehreren Farben pro Stil, was ein deutlich kompakteres Wire-Format ermöglicht.
Wir haben eine OEM-orientierte Funktion hinzugefügt, mit der OEM-Zusatzfunktionsanbieter Extras zu „ComplicationData“ hinzufügen können, die von OEM-Zifferblättern verwendet werden.
API-Änderungen
- Die Klassen
UserStyleSettingundUserStyleOptionhaben jetzt Builder, die die empfohlene Methode zum Erstellen sind. (Iacd03) - Unterstützung für das Übergeben von Extras in
ComplicationData. Diese Methode ist für OEMs vorgesehen, die sowohl den Komplikationsanbieter als auch das empfangende Zifferblatt steuern. Das Festlegen eines Extras erfordert die Berechtigungcom.google.android.wearable.permission.COMPLICATION_EXTRAS. (I4e3b2) - Bei Zifferblättern können Nutzer Farben in der Regel über ein
ListUserStyleauswählen. Für jedesListOptiongibt es ein Symbol. DaUserStyle-Schemas über Bluetooth gesendet werden, ist es wichtig, die Größe des Schemas gering zu halten. Das kann ein Problem sein, wenn aufgrund der vielen Symbole Dutzende von Farboptionen angegeben werden. Um dies zu erleichtern, haben wirColorUserStyleSettinghinzugefügt, wenn die Option eine Liste mit Farben anstelle eines Symbols enthält. Das ist viel kompakter. (Ib542e) - Für die Verwendung von
ColorUserStyleSettingundColorOptionist API 34 erforderlich. (I8771d)
Fehlerkorrekturen
- In dieser Bibliothek werden jetzt JSpecify-Annotationen für Nullsicherheit verwendet, die typbezogen sind. Kotlin-Entwickler sollten das folgende Compiler-Argument verwenden, um die korrekte Verwendung zu erzwingen:
-Xjspecify-annotations=strict(dies ist die Standardeinstellung ab Version 2.1.0 des Kotlin-Compilers). (Ifd363, b/326456246)
Version 1.3.0-alpha04
18. September 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha04 ist veröffentlicht. Version 1.3.0-alpha04 enthält diese Commits.
Neue Funktionen
- Unterstützung für das Lazy Loading von Symbolen in
UserStyleSettingsundUserStyleOptionswurde hinzugefügt. Das Laden von Zifferblättern wird dadurch beschleunigt. (Iaf43d) - Es wurde eine Option hinzugefügt, mit der ein aktualisierter Screenshot erstellt werden kann, wenn sich die Systemkonfiguration ändert (z. B. wenn sich das Gebietsschema ändert). Dazu wird die neue
Watchface.setUpdateScreenshotOnConfigurationChangeverwendet. Diese Einstellung ist standardmäßig deaktiviert. (I765a1)
Fehlerkorrekturen
- Die manuelle Beschreibung des Zugriffs auf neue Plattform-APIs wurde entfernt, da dies automatisch über die API-Modellierung erfolgt, wenn R8 mit AGP 7.3 oder höher verwendet wird (z. B. R8-Version 3.3), und für alle Builds, wenn AGP 8.1 oder höher verwendet wird (z. B. D8-Version 8.1). Clients, die AGP nicht verwenden, wird empfohlen, auf D8-Version 8.1 oder höher zu aktualisieren. Weitere Details findest du in diesem Artikel. (Ia60e0, b/345472586)
Version 1.3.0-alpha03
17. April 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha03 ist veröffentlicht. Version 1.3.0-alpha03 enthält diese Commits.
API-Änderungen
- Wir haben
EditorSession#setOverrideComplicationshinzugefügt, wodurchComplicationDatader zugrunde liegenden Zifferblattinstanz während der Bearbeitung vorübergehend festgelegt wird. Wenn sich Komplikationen nur selten ändern, ist das effizienter, als Überschreibungen überEditorSession#renderWatchFaceToBitmapzu übergeben. (I19384)
Fehlerkorrekturen
- Bisher wurde
toApiComplicationDatafür alle Zeitachsen vonselectComplicationDataForInstantaufgerufen, was dazu führte, dass der nachfolgende ===-Referenzgleichheitstest immer fehlschlug. Das führte dazu, dass Komplikationen bei jedem Frame neu geladen wurden, was den Akku entlud. (717406)
Version 1.3.0-alpha02
3. April 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha02 ist veröffentlicht. Version 1.3.0-alpha02 enthält diese Commits.
Neue Funktionen
- Wir verwenden jetzt die Referenzgleichheit, um „best“ und
selectedDatazu vergleichen, da der Gleichheitsoperator ressourcenintensiv ist. (446b00)
API-Änderungen
- Wir haben eine dynamische API ohne Fallback für
GoalProgressComplicationDatahinzugefügt. (c33264)
Version 1.3.0-alpha01
7. Februar 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha01 ist veröffentlicht. Version 1.3.0-alpha01 enthält diese Commits.
Neue Funktionen
WatchFaceServiceskann gleichzeitig initialisiert werden und sollte daher statuslos sein. Um dies zu unterstützen, haben wirStatefulWatchFaceServicehinzugefügt, in dem ein benutzerdefiniertes Extra, das voncreateExtra()erstellt wurde, an alle Überschreibungen übergeben wird, die während der Initialisierung aufgerufen werden.GlesRenderer2hat jetzt eine Konstruktorüberladung, mit der Sie eine Liste von Attributen angeben können, die nacheinander miteglChooseConfigausprobiert werden sollen.
API-Änderungen
StatefulWatchFaceServiceunterstützt jetzt eine Überschreibung vongetComplicationSlotInflationFactory, in die das benutzerdefinierte Extra, das voncreateExtra()erstellt wurde, übergeben wird. (I82d9f)- Bei einigen Zifferblättern müssen während
createUserStyleSchemaerstellte Hilfsdaten mit den anderen Initialisierungsmethoden geteilt werden. Da es keine bessere Alternative gab, haben Entwickler denWatchFaceServices-Zustand in der Regel beibehalten. Das ist gefährlich, weil mehrere Instanzen gleichzeitig erstellt werden können, was zu Fehlern führen kann. Um dieses Problem zu beheben, haben wirStatefulWatchFaceServiceundStatefulWatchFaceRuntimeServiceeingeführt. Dabei wird ein benutzerdefinierter Typ voncreateExtra()erstellt und als Parameter an die verschiedenen Create-Methoden übergeben. (If8a99) - Wir haben
getUserStyleFlavorszuInteractiveWatchFaceClienthinzugefügt. Das ist vor allem für OEMs interessant. (I0f5d8) GlesRenderer2hat jetzt eine Konstruktorüberladung, mit der Sie eine Liste von Attributen angeben können, die nacheinander miteglChooseConfigausprobiert werden sollen. So können Sie beispielsweise zuerst eine Konfiguration mit Anti-Aliasing ausprobieren und bei Bedarf auf eine ohne Anti-Aliasing zurückgreifen. (I1ba74)- Ab Android U wird die Unterstützung für
SystemDataSources.DATA_SOURCE_HEART_RATEin WearOS hinzugefügt. Diese Komplikation unterstützt garantiert nurSHORT_TEXT-Komplikationen. Es wird jedoch empfohlen, dass dasComplicationSlotauchSMALL_IMAGEakzeptiert, da OEMs möglicherweise eine Verknüpfung zu ihrer Gesundheits-App anstelle des Live-Werts bereitstellen. (I34223) - Wir haben
METADATA_KEY_CONFIG_RESTORE_SUPPORTEDhinzugefügt. Ab Android U wird damit gesteuert, was passiert, wenn das System aus einem Backup für eine Datenquelle für Zifferblätter mitMETADATA_KEY_DATA_SOURCE_CONFIG_ACTIONwiederhergestellt wird. Standardmäßig geht das System davon aus, dass der Dienst für die Datenquelle der Komplikation die Sicherung aller Konfigurationsdaten unterstützt. Wenn dies nicht der Fall ist, kann er die MetadateneinstellungMETADATA_KEY_DATA_SOURCE_CONFIG_ACTIONauf „false“ setzen, wodurch der Komplikations-Slot als nicht konfiguriert gekennzeichnet wird. (I6c505)
Version 1.2
Version 1.2.1
24. Januar 2024
androidx.wear.watchface:watchface-*:1.2.1 ist veröffentlicht. Version 1.2.1 enthält diese Commits.
Fehlerkorrekturen
- Ein Absturz auf der Samsung Galaxy Watch 4, 5 und 6 wurde behoben. (43f0b0)
Version 1.2.0
29. November 2023
androidx.wear.watchface:watchface-*:1.2.0 ist veröffentlicht. Version 1.2.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.1.0
- Wir haben Unterstützung für einige neue Zifferblatttypen hinzugefügt, die ab Android T verfügbar sind:
GoalProgressComplicationDataähneltRangedValueComplicationData, bezieht sich jedoch auf den Fortschritt in Richtung eines Ziels, wobei der Mindestwert implizit null ist und der Wert größer alstargetValuesein darf.WeightedElementsComplicationData, das aus einem Array von Elementen (Paare aus Gewicht und Farbe) sowie optionalem Text, Titel und Bild besteht. Diese werden möglicherweise als Kreisdiagramm dargestellt. Die Farben müssen im jeweiligen Kontext aussagekräftig sein, da in einer Komplikation in der Regel kein Platz für Labels ist.
- Wir haben Unterstützung für optionales
ColorRangesinRangedValueComplicationDatahinzugefügt. Normalerweise werden Komplikationen in den Farben des Zifferblatts gerendert. Manchmal ist es jedoch am besten, die Farben mitComplicationDataSourcefestzulegen, z. B. wenn sie eine bestimmte semantische Bedeutung haben. z.B. Rot bis Blau für die Temperatur. - Fast jeder Typ von
ComplicationDataunterstützt jetztSmallImages. - Wir haben
ComplicationDisplayPolicyhinzugefügt, wobeiDO_NOT_SHOW_WHEN_DEVICE_LOCKEDein kompatibles Zifferblatt anweist, die Zusatzfunktion nicht anzuzeigen, wenn das Gerät gesperrt ist. - Ab Android T können OEMs anhand von
ComplicationRequest#isForSafeWatchFaceermitteln, ob eine Anfrage für eine Komplikation von einem Zifferblatt in der Liste stammt, die durch dieandroid.support.wearable.complications.SAFE_WATCH_FACES-Metadaten im Manifest des Anbieters definiert wird. Der Anbieter benötigt die Berechtigungcom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE, um etwas anderes als „TargetWatchFaceSafety.UNKNOWN“ zu empfangen. UserStyleFlavorsist keine experimentelle Funktion mehr.
Version 1.2.0-rc01
18. Oktober 2023
androidx.wear.watchface:watchface-*:1.2.0-rc01 ist veröffentlicht. Version 1.2.0-rc01 enthält diese Commits.
Version 1.2.0-beta02
6. September 2023
androidx.wear.watchface:watchface-*:1.2.0-beta02 ist veröffentlicht. Version 1.2.0-beta02 enthält diese Commits.
Neue Funktionen
SuspendingComplicationDataSourceService#onDestroyist jetzt geöffnet. Die Unterstützung für eine Standardwetter-Kombination des Systems wurde entfernt.
API-Änderungen
- „Neue Datenquelle für Wetter-Zusatzfunktionen bereitstellen“ rückgängig machen (I6f335)
Version 1.2.0-beta01
23. August 2023
androidx.wear.watchface:watchface-*:1.2.0-beta01 ist veröffentlicht. Version 1.2.0-beta01 enthält diese Commits.
Neue Funktionen
- Ab Android T unterstützt WearOS jetzt eine Standard-Wetter-Kombination.
API-Änderungen
- Standard-System-Fallback für Wetter-Zusatzfunktionen hinzufügen (Ia0994)
- Mit diesem Patch werden
WatchFaceRuntimeServiceundWatchFaceControlClient.createWatchFaceRuntimeControlClientsowie Guava-Wrapper hinzugefügt. Sie bieten Unterstützung für Zifferblatt-Runtimes, die eine spezielle Art von Zifferblatt sind, deren Definition aus einem anderen Paket geladen wird. Derzeit unterstützt Wear OS nur die Laufzeit für das Android Watch Face Format. (I2799f) - Dieser Patch ist eine Fortsetzung von aosp/2636578, in dem wir die Int-Definitionen umbenennen, damit Code, der von
WatchFaceType,CanvasType,TapTypeoderComplicationsSlotBoundsTypeabhängt, nicht geändert werden muss. (I4098b) - Die API-Dateien wurden aktualisiert, um die Unterdrückung der Kompatibilität zu annotieren. (I8e87a, b/287516207)
- Mit diesem Patch werden
WatchFaceType-Konstanten inWatchFaceTypes,CanvasType-Konstanten inCanvasTypes,TapType-Konstanten inTapTypesundComplicationsSlotBoundsType-Konstanten inComplicationsSlotBoundsTypeverfügbar gemacht. (I3b85a, b/288750666) WatchFace.OverlayStylewird nur sehr selten verwendet und wird von OEMs nicht gut unterstützt. Daher wird es eingestellt und zu einem späteren Zeitpunkt entfernt. (I7344a)
Version 1.2.0-alpha09
21. Juni 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha09 ist veröffentlicht. Version 1.2.0-alpha09 enthält diese Commits.
Neue Funktionen
RangedValueComplicationData.Builderunterstützt jetztDynamicFloatund eine neueDynamicComplicationTextist als Unterklasse vonComplicationTextverfügbar. Beide können dynamische Ausdrücke sowie Plattformbindungen verwenden, die auf unterstützten Wear 4-Geräten mit 1 Hz aktualisiert werden.
API-Änderungen
- Dynamische Typen für Tagesstrecke, Tageskalorien und Tagesetagen hinzugefügt. Schlüssel für Plattformen mit Gesundheitsinformationsquellen sind jetzt unter
PlatformHealthSources.Keys(Ib7637) verfügbar. - Implementiere
PlatformDataProvider, um Herzfrequenz und tägliche Schritte bereitzustellen. DieSensorGateway-Schnittstelle wird aus der öffentlichen API entfernt. (I55b84) - Benennen Sie
StateEntryValueinDynamicDataValueum und aktualisieren Sie die Status-APIs, damit sieDynamicDataKeyverwenden. (If1c01) AppDataKeyzum Zugriff auf den per Push übertragenen App-Status hinzufügen;PlatformDataKeyzum Zugriff auf Plattformdaten hinzufügen; Namespace-Unterstützung inStateStorehinzufügen. (I7985e)- Die Methoden
enable/disablePlatformSourcewurden ausDynamicTypeEvaluatorentfernt. Der Anrufer sollte für Updates verantwortlich sein. (I78c6d) - Die Größe von gebundenen Datentypen kann begrenzt werden. (Ie2966)
Version 1.2.0-alpha08
19. April 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha08 ist veröffentlicht. Version 1.2.0-alpha08 enthält diese Commits.
Neue Funktionen
- Ab Android T können Komplikationsanbieter mit der privilegierten Berechtigung
com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACEandroidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPES-Metadaten registrieren, dieandroid.support.wearable.complications.SUPPORTED_TYPESfür sichere Zifferblätter überschreiben. Das bedeutet, dass ein Komplikationsanbieter für vertrauenswürdige und nicht vertrauenswürdige Zifferblätter unterschiedliche Typen bereitstellen kann.
API-Änderungen
- Weitergabe der Klasse
@Deprecatedan die Property (I882d1, b/271441831) - Der Name des Wertparameters für
Enum.valueOfwurde geändert (Ia9b89) - Weitere ausgelöste Ausnahmen von enum valueOf (I818fe)
- Wir haben
renderWatchFaceToSurfaceentfernt und durchcreateRemoteWatchFaceViewersetzt.createRemoteWatchFaceViewbasiert auf SurfaceControlViewHost und ermöglicht dem Aufrufer, eine Ansicht vom Zifferblatt einzubetten, die gerendert wird, wenn der ClientRemoteWatchFaceViewHost#renderWatchFaceaufruft. (Ib311d) - Wir haben
renderWatchFaceToSurfacezuInteractiveWatchFaceClient,HeadlessWatchFaceClientundEditorSessionhinzugefügt. Das ist in der Regel leistungsfähiger als das Rendern in eine Bitmap. (Ieacad) ObservableStateStorewurde inStateStoreumbenannt. (Ieb0e2)DynamicTypeEvaluator.Builderwurde anstelle von Konstruktorargumenten hinzugefügt, um mehr optionale Argumente zu ermöglichen, einschließlichObservableStateStore, das jetzt standardmäßig auf einen leeren Speicher festgelegt ist. (I6f832)- Die Reihenfolge der Parameter in
DynamicTypeEvaluatorwurde überarbeitet. (Ic1ba4) - Der Executor wurde den
DynamicTypeEvaluator.bind-Methoden hinzugefügt. (I346ab) - Wir haben der
BoundDynamicTypedie MethodestartEvaluationhinzugefügt, um die Auswertung nach der Bindung des dynamischen Typs auszulösen. (I19908) - Anbieter von Komplikationen mit der privilegierten Berechtigung
com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACEkönnenandroidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPES-Metadaten registrieren, dieandroid.support.wearable.complications.SUPPORTED_TYPESfür sichere Zifferblätter überschreiben. (Id1c73) - Wir haben
CustomValueUserStyleSettings2inLargeCustomValueUserStyleSettingsumbenannt. (Ic17ac)
Fehlerkorrekturen
DynamicTypeValueReceiver#onPreUpdatewurde entfernt. (I2dc35)
Version 1.2.0-alpha07
22. Februar 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha07 ist veröffentlicht. Version 1.2.0-alpha07 enthält diese Commits.
Neue Funktionen
Ab Android T können OEMs anhand von
ComplicationRequest#isForSafeWatchFacefeststellen, ob eine Anfrage für eine Komplikation von einem Zifferblatt in der Liste stammt, die durch dieandroid.support.wearable.complications.SAFE_WATCH_FACES-Metadaten im Manifest ihres Anbieters definiert wird. Der Anbieter benötigt die Berechtigungcom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE, um etwas anderes alsTargetWatchFaceSafety.UNKNOWNzu empfangen.Ab Android T ist auch
CustomValueUserStyleSetting2verfügbar, das bis zu 12,5 KB enthalten kann. Das bisherige Limit fürCustomValueUserStyleSettinglag bei 1 KB. Trotz der erhöhten Größenbeschränkungen sollten Zifferblattentwickler die Daten klein halten, da die Einstellungen während der Bearbeitung über Bluetooth gesendet werden und die Bluetooth-Bandbreite begrenzt ist.
API-Änderungen
- Wir haben den Funktionen
GlesRendererundGlesRenderer2den optionalen ParametereglContextAttribListhinzugefügt, mit dem Sie den anEGL14.eglCreateContextübergebenenEGL14.EGL_CONTEXT_CLIENT_VERSIONfestlegen können. (I2a83e) - Wir haben die Zifferblattbibliotheken von
java.util.function.Consumerzuandroidx.core.util.Consumermigriert. (I273f5) - Weitere ausgelöste Ausnahmen von KT-Property-Accessors (Iff9d9)
- Wir haben
InteractiveWatchFaceClient.isComplicationDisplayPolicySupportedhinzugefügt, damit der Client ermitteln kann, ob er die Unterstützung für alte Zifferblätter emulieren muss. (I24c89) - Wir haben entschieden, dass
isForSafeWatchFaceein Tristate-IntDefsein sollte. (Ief2f7) - Für Android T haben wir
ComplicationRequest.isForSafeWatchFaceeingeführt, das für die Verwendung durch OEMs vorgesehen ist undcom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACEerfordert. Bei Datenquellen im System-Image wird „true“ zurückgegeben, wenn sich das anfragende Zifferblatt in der Liste der sicheren Zifferblätter befindet, die von der Datenquelle im Manifest angegeben werden. (I0cbb6) - Für Android T haben wir
CustomValueUserStyleSetting2hinzugefügt, das bis zu 12,5 KB enthalten kann. Das bisherige Limit fürCustomValueUserStyleSettinglag bei 1 KB. (I0b100)
Version 1.2.0-alpha06
25. Januar 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha06 ist veröffentlicht. Version 1.2.0-alpha06 enthält diese Commits.
Neue Funktionen
- Wir arbeiten daran, Unterstützung für Komplikationsplattformbindungen hinzuzufügen. Das ist noch nicht einsatzbereit, aber wir halten dich auf dem Laufenden.
- Wir haben XML-
ComplicationSlot-Unterstützung für die neuen Komplikationstypen GOAL_PROGRESS und WEIGHTED_ELEMENTS hinzugefügt.
Fehlerkorrekturen
- Es wurde ein Speicherleck behoben, bei dem der Zifferblatt-Editor auf Samsung-Geräten nicht richtig freigegeben wurde. (3b5987)
- Ein Fehler wurde behoben, bei dem die Komplikationen beim Wechsel zwischen einer Zifferblatt mit mehreren Favoriten manchmal nicht richtig angezeigt wurden. (b38ece)
- Es wurde ein Serialisierungsfehler mit „perOptionScreenReaderNames“ behoben, der zu Abstürzen von Zifferblättern geführt hat. (e9f466)
Version 1.2.0-alpha05
7. Dezember 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha05 ist veröffentlicht. Version 1.2.0-alpha05 enthält diese Commits.
Neue Funktionen
Vor einiger Zeit haben wir die Unterstützung für hierarchische
UserStyleSettingshinzugefügt. Ab Android T ist es nun möglich, mehr als eineComplicationSlotsUserStyleSettingin einer Hierarchie zu haben. Je nach den vom Nutzer ausgewählten Stilen ist nur einComplicationSlotsUserStyleSettingaktiv.Wir verbessern die Screenreader-Unterstützung für
ListOptionundComplicationSlotsOption, indem wir das FeldscreenReaderNamehinzufügen. Vor Android T wird dieses Feld von Companion-Editoren ignoriert.
API-Änderungen
- Wir haben den Feldern
ListOptionundComplicationSlotsOptiondas neue optionale FeldscreenReaderNamehinzugefügt, das von Companion-Editoren auf Geräten vor Android T ignoriert wird. (I75326) - Ab Android T werden mehrere
ComplicationSlotsUserStyleSettingsin einer Stilhierarchie unterstützt, sofern jeweils nur eine davon aktiv sein kann. Wir habenUserStyleSchemadie HilfsfunktionfindComplicationSlotsOptionForUserStylehinzugefügt, um das aktiveComplicationSlotsOptionzu finden, falls vorhanden. (Ic2b06) RangedValuesTypeswurden in das Companion-Objekt vonRangedValueComplicationDataübernommen und inTYPE_UNDEFINEDundTYPE_RATINGumbenannt. Außerdem wurde ein neuesTYPE_PERCENTAGEhinzugefügt. (I55d02)- Wir haben die experimentelle Funktion
DynamicFloatinFloatExpressionumbenannt und als@hidegekennzeichnet. (Idf4f1) - Annotation
@JvmDefaultWithCompatibilitywurde hinzugefügt. (I8f206)
Version 1.2.0-alpha04
9. November 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha04 ist veröffentlicht. Version 1.2.0-alpha04 enthält diese Commits.
Neue Funktionen
- Unter Android T werden zwei neue Komplikationstypen unterstützt:
GoalProgressComplicationDataundWeightedElementsComplicationData. GoalProgressComplicationDataähneltRangedValueComplicationData, aber der Wert darf über das Ziel hinausgehen (beiRangedValueComplicationDatawird der Wert auf den Bereich [min .. max] begrenzt). Dies hat Auswirkungen auf das visuelle Design, die möglicherweise nicht für alle Zifferblätter geeignet sind.GoalProgressComplicationDatabietet Unterstützung für Kreisdiagramme und ähnliche Aufschlüsselungen einfacher Daten.RangedValueComplicationDatawurde eine optionale Unterstützung fürColorRampshinzugefügt.- Für Android T haben wir
ComplicationPersistencePolicyundsetCachePolicyzuComplicationDatahinzugefügt. Damit kann ein Anbieter derzeit steuern, ob eine Komplikation beibehalten wird oder nicht (d. h. ob sie nach dem Neustart im Cache gespeichert wird). Bei den meisten Komplikationen ist keine Cache-Steuerung erforderlich. In einigen Sonderfällen mit veralteten Daten kann sie jedoch hilfreich sein, z. B. bei Komplikationen mit Gesundheitsdaten, die häufig aktualisiert werden. Außerdem haben wirComplicationDisplayPolicyhinzugefügt, wobeiDO_NOT_SHOW_WHEN_DEVICE_LOCKEDein kompatibles Zifferblatt anweist, die Zusatzfunktion nicht anzuzeigen, wenn das Gerät gesperrt ist. (Ic9574)
API-Änderungen
GoalProgressComplicationData,WeightedElementsComplicationDataundColorRampsind nicht mehr experimentell. (Ica9e2)ComplicationPersistencePolicyundComplicationDisplayPolicysind jetzt korrekt als T-APIs gekennzeichnet. (I31d88)- Der eingestellte
ComplicationSlotOverlay-Konstruktor hat jetztDeprecationLevel.WARNING, sodass er wieder aus Java aufgerufen werden kann. (Ib308c) - Wir haben einige Java-Kompatibilitätsprobleme mit
ComplicationRequestListener,CanvasComplication,ComplicationTapFilterundInteractiveWatchFaceClientbehoben, indem wir sie mit@JvmDefaultWithCompatibility(Id94fc) annotiert haben. - Wir haben die experimentellen Funktionen
ProtoLayoutComplicationDataundListComplicationDataentfernt. Die Entwicklergeschichte für diese war unklar. Wir hoffen, dass wir sie in Zukunft noch einmal aufgreifen können. (I9df05) - Wir haben
RangedValueComplicationDatawieder eineValueTypehinzugefügt.WeightedElementsComplicationDataunterstützt jetzt eine Hintergrundfarbe. Wir habenDiscreteRangedValueComplicationDataentfernt, da die Funktionen eine Teilmenge vonWeightedElementsComplicationDatasind. (I6446c)
Fehlerkorrekturen
- Fügen Sie
isForScreenShotin das Gleichheitszeichen und den Hashcode ein. Prüfen Sie, ob füronRenderParametersChangedder richtigeisForScreenshot-Wert angegeben ist (I04a41). - Es wurden Lecks von
WatchFaceControlServicebei Headless-Clients behoben. (e90e00)
Version 1.2.0-alpha03
5. Oktober 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha03 ist veröffentlicht. Version 1.2.0-alpha03 enthält diese Commits.
Neue Funktionen
- Es gibt keine neuen Funktionen, aber wir haben einige Fehler im Zifferblatt-Editor behoben.
API-Änderungen
UserStyleSchema.userStyleSettingswurde verworfen, darootUserStyleSettingsnicht mehr experimentell ist (Ie96e3)rootUserStyleSettingsaus dem experimentellen Bereich entfernen (I8d6b3)- Wir haben
WatchFaceColorsals experimentell gekennzeichnet, da es nicht von allen Systemen unterstützt wird (I6d75d). - Machen Sie
DisconnectReasonsin der öffentlichen API verfügbar, damit sie mitIntDeffunktioniert. (I791f8)
Fehlerkorrekturen
- Schließe alle geöffneten On-Watch-Editoren, wenn
SysUIbeendet wird. WennSysUIbeendet wird und der Editor für Zifferblätter nicht geschlossen wird, kann das Zifferblatt in einem inkonsistenten Zustand zurückbleiben, da das System darauf angewiesen ist, dassSysUIalle Änderungen am Nutzerstil beibehält.(ba762a - Ein Speicherleck in
ComplicationDataSourceInfoRetrieverwurde behoben, bei dem eine Kotlin-Coroutine-Fortsetzung als GC-Root fungierte und die Editoraktivität beibehielt.(33ee06)
Version 1.2.0-alpha02
21. September 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha02 ist veröffentlicht. Version 1.2.0-alpha02 enthält diese Commits.
Neue Funktionen
Bei einigen Zifferblättern gibt es Konfigurationen außerhalb von
UserStyle, die sich auf das Aussehen auswirken, z.B. die Auswahl eines Hintergrundfotos. Wir habenRenderer.sendPreviewImageNeedsUpdateRequesthinzugefügt, damit das Zifferblatt ein aktualisiertes Vorschaubild anfordern kann. Dazu ist ein entsprechendes Systemupdate erforderlich.Außerdem haben wir eine API für Zifferblätter hinzugefügt, mit der ihre Farben für das System verfügbar gemacht werden. Das System kann seine Farbpalette dann auf Grundlage dieser Farben auswählen. Hinweis: Dies wurde in einem nachfolgenden Patch als experimentell eingestuft.
Fast alle Arten von
ComplicationDataunterstützen jetztSmallImages.
API-Änderungen
- Manchmal kann sich der Hintergrundmanager von einer Engine trennen und eine andere erstellen. Wir haben eine
DisconnectReason-Int-Definition hinzugefügt undClientDisconnectListenerum eine neue Methode erweitert, die eineDisconnectReasonenthält, damit der Listener das Trennen der Engine beobachten kann. (I45cce) - Dem
ComplicationSlotOverlay-Konstruktor wurden zwei optionale ParameternameResourceIdundscreenReaderResourceIdhinzugefügt (I157e8). - Wir haben einen Guava-Wrapper für die neue Überladung von
getOrCreateInteractiveWatchFaceClientmit einemPreviewImageUpdateRequestedListenerhinzugefügt. (Ic31f0) - Wir haben
Renderer.sendPreviewImageNeedsUpdateRequesthinzugefügt. Das ist nützlich für Zifferblätter, die einen Status außerhalb vonUserStyleSchemahaben, der sich auf ihr Aussehen auswirkt, z. B. ein Zifferblatt mit einem auswählbaren Hintergrundbild. Auf der Clientseite haben wirPreviewImageUpdateRequestedListenerals optionalen Parameter fürgetOrCreateInteractiveWatchFaceClienthinzugefügt, um diese Anfragen zu beobachten. (Iff44a) - Wir haben die API zum Bereitstellen von
WatchFaceColorsvereinfacht. Jetzt gibt es im Renderer eine einfache Eigenschaft namenswatchFaceColors, die vom Zifferblatt festgelegt werden kann. Sie sollte bei Bedarf als Reaktion auf Stiländerungen aktualisiert werden. Anstelle vonWallpaperManagerzum Beobachten von Farbänderungen haben wirOnWatchFaceColorsListenerzuInteractiveWatchFaceClienthinzugefügt. (I490bc) - Wir haben die Klasse
WatchFaceColorshinzugefügt, die die drei wichtigsten Zifferblattfarben enthält, und dem Renderer die offenen MethodenwatchfaceColorsundnotifyWatchFaceColorsChangedhinzugefügt. Dadurch kann das System die Farben des Zifferblatts überWallpaperManager.getWallpaperColorsabrufen. (I3d611) ShortTextComplicationData,RangedValueComplicationData,NoPermissionComplicationDataund die experimentellenDiscreteRangedValueComplicationData,GoalProgressComplicationDataundWeightedElementsComplicationDataunterstützen jetzt alleSmallImages. Wenn ein Zifferblatt eine Komplikation mit mehreren Farben rendert, kann es jetzt ein mehrfarbigesSmallImageverwenden. Bisher musste es ein monochromatisches Bild verwenden. (I257df)- Faktorwechsel:
PreviewImageUpdateRequestedListenersollte stattdessenConsumer<>sein (Ia875d) - Ersetzen Sie den benutzerdefinierten SAM-Typ (Single Abstract Method)
OnWatchfaceColorsListenerdurch den generischen Java-SAM-Typ (Consumer) (I0c489). - Wir haben die alten Methoden
getOrCreateInteractiveWatchFaceClientundlistenableGetOrCreateInteractiveWatchFaceClient, bei denen keinePreviewImageUpdateRequestedListenerangegeben ist, eingestellt. (Iec502)
Fehlerkorrekturen
DisconnectReason.BINDER_DIEDwurde inDisconnectReason.ENGINE_DIEDumbenannt. (I4eb0e)
Version 1.2.0-alpha01
10. August 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha01 ist veröffentlicht. Version 1.2.0-alpha01 enthält diese Commits.
Neue Funktionen
- Wir haben experimentelle Unterstützung für verschiedene neue Komplikationsformate hinzugefügt. Diese neuen Formate werden derzeit aktiv entwickelt. Sie können ohne Vorankündigung geändert werden und werden derzeit nicht von
CanvasComplicationDrawablegerendert. - Außerdem haben wir optional Ränder für Zifferblattelemente hinzugefügt, damit sich kleine Zifferblattelemente leichter antippen lassen.
API-Änderungen
- Die experimentelle Klasse
BoundingArcist jetzt unveränderlich. (If624a) - Kleine Zusatzfunktionen sind manchmal schwer zu berühren. Um dieses Problem zu beheben, haben wir die Unterstützung für Ränder eingeführt, die den tappbaren Bereich vergrößern, ohne das Rendering zu beeinträchtigen. Sofern nicht anders angegeben (entweder im Code oder über XML), haben
ComplciationSlotsRänder mit der Größe 0. (I14089) - Die Signatur von
getComplicationSlotInflationFactory(CurrentUserStyleRepository)wurde geändert, um eine Factory-Instanz zurückzugeben, die nicht null ist. Bisher war es ein Fehler, „null“ zurückzugeben. Durch diese Änderung wird der API-Vertrag nur deutlicher. (I0fcc0) - Wir haben der Methode
WatchFaceService.getComplicationSlotInflationFactorydas ArgumentcurrentUserStyleRepositoryhinzugefügt, um sie ancreateComplicationSlotsManageranzugleichen. (I2ddd2) UserStyleFlavorsist keine experimentelle Funktion mehr. (I69cdc)- Wir haben die experimentelle
ValueTypeausRangedValueComplicationDataentfernt und stattdessen die experimentelleDiscreteRangedValueComplicationDataeingeführt. Diese entsprichtRangedValueComplicationData, mit Ausnahme des Ganzzahlbereichs und des Werts. Außerdem haben wir die experimentelle FunktionGoalProgressComplicationDataeingeführt, dieRangedValueComplicationDataähnelt. Sie wird jedoch für den Fortschritt in Richtung eines Ziels verwendet, bei dem „min“ implizit null ist und der Wert größer alstargetValuesein darf. Hinweis: Bei allenRangedValue-Varianten muss mindestens monochromeImage, text oder title angegeben werden. (I9590c) - Wir haben
boundsWithMarginsausComplicationSlotStateentfernt, da es für Systemsoftware keinen Anwendungsfall gibt. (I42e26) - Wir haben die experimentelle Unterstützung für
WeightedElementsComplicationDatahinzugefügt. Diese besteht aus einem Array von Elementen (Paare aus Gewicht und Farbe) sowie optionalem Text, Titel und Bild. Diese werden möglicherweise als Kreisdiagramm dargestellt. Die Farben müssen im jeweiligen Kontext aussagekräftig sein, da in einer Komplikation in der Regel kein Platz für Labels ist. (I87eea) - Mit dem optionalen experimentellen
ColorRamps, das vonRangedValueComplicationDataundGoalProgressComplicationDataverwendet wird, können Sie jetzt eine Sequenz von bis zu sieben Farben und ein Flag angeben, das angibt, ob die Farben stufenlos ineinander übergehen oder ob gleich große, einfarbige Farbschritte gerendert werden sollen. (I9f5bf) RangedValueComplicationData.drawSegmentedwurde invalueTypegeändert. Das ist ein Integer mit einem entsprechendenValueType IntDef, der dem Bereichswert eine semantische Bedeutung verleiht und vom Komplikations-Renderer verwendet werden kann, um das Styling zu beeinflussen. (I0616b)- Wir haben experimentelle Unterstützung für optionales
ColorRangesinRangedValueComplicationDatahinzugefügt. Normalerweise werden Komplikationen in den Farben des Zifferblatts gerendert. Manchmal ist es jedoch am besten, die Farben mitComplicationDataSourcefestzulegen, z. B. wenn sie eine bestimmte semantische Bedeutung haben. z.B. Rot bis Blau für die Temperatur. (I5153a) - Wir haben
RangedValueComplicationDataeinen experimentellendrawSegmented-Hinweis hinzugefügt. Dadurch wird den Renderern signalisiert, dass der Bereichswertindikator mit Segmenten gezeichnet werden soll, wobei 1 Segment = 1 Einheit ist. (I7d7c1)
Fehlerkorrekturen
- Wir haben die Möglichkeit hinzugefügt,
ComplicationSlotBoundsrelativ zu einem vordefinierten Bildschirmkoordinatensystem zu definieren. (I0985d)
Version 1.1
Version 1.1.1
10. August 2022
androidx.wear.watchface:watchface-*:1.1.1 ist veröffentlicht. Version 1.1.1 enthält diese Commits.
- Dies ist ein Release mit Fehlerkorrekturen. Nutzern von Version 1.1.0 wird dringend empfohlen, ein Upgrade durchzuführen.
Fehlerkorrekturen
Die Initialisierung des Zifferblatts erfolgt asynchron. Wenn eine Zusatzfunktion empfangen wird, bevor das Zifferblatt bereit ist, wird sie in die Liste
pendingInitialComplicationsaufgenommen und später angewendet. Leider wurdependingInitialComplicationszu früh angewendet. Das bedeutet, dass es während der Initialisierung des Zifferblatts ein Zeitfenster gab, in dem die Komplikationen weiterhin aufpendingInitialComplicationsgesetzt und ignoriert wurden. Das Problem wurde nun behoben. Außerdem wird mit diesem Patch ein Fehler behoben, bei demComplicationRendererfälschlicherweise versucht hat, Platzhalter asynchron zu laden. Dies ist fehlgeschlagen, sodass die Kompilierungsgrafik nie aktualisiert wurde. Schließlich wird mit diesem Patch ein hoffentlich theoretischer Fehler behoben, bei dem mehrerependingInitialComplicationszusammengeführt werden müssen. (0d03ba3)Potenziellen Deadlock in
InteractiveInstanceManagerbehoben, bei demgetExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstancedie Sperre länger als nötig gehalten hat. Normalerweise sollteengine.setUserStyleschnell ausgeführt werden. Wenn das aus irgendeinem Grund nicht der Fall ist, kann es zu einem Deadlock oder ANR kommen. Mit diesem Patch werden unnötige Arbeiten aus der Sperre entfernt, wodurch das Risiko eines Deadlocks verringert wird.(5a2adca)Es wurden mehrere Probleme behoben, die
WatchFaceServicebetrafen. Manchmal behält der WakeLock denWatchFaceServicebei. Das Problem lässt sich durch Hinzufügen einesrelease()-Aufrufs beheben. Außerdem kannStateFlowsWatchFaceServicebeibehalten, wodurch die zugrunde liegendeCoroutineScopesgekündigt wird. Das Problem wird durch die Kündigung behoben.(fd48138)Füge Zeitüberschreitungen zu
awaitDeferredWatchFace* hinzu und behebewatchfaceOverlayStyleNullPointerException. Unter normalen Umständen sollte es nicht zu einem Zeitüberschreitungsfehler kommen, auch nicht nach einer Neuinstallation und inDirectBoot-Szenarien, in denen die CPU-Auslastung hoch ist. Außerdem haben wir einen NPE-Fehler behoben, der auftritt, wenngetWatchfaceOverlayStylenachclose()aufgerufen wird.(a4c3a5a)
Version 1.1.0
15. Juni 2022
androidx.wear.watchface:watchface-*:1.1.0 ist veröffentlicht. Version 1.1.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.0.0
Verbesserte Bearbeitung:
- Wir haben Unterstützung für hierarchische Schemas hinzugefügt, sodass eine Hierarchie von Stilen über die Editor-Benutzeroberflächen beschrieben werden kann. Sie können jetzt separate Symbole für die Verwendung in Zifferblatt- und Companion-Editoren angeben.
- Es gibt eine Opt-in-Unterstützung für mehrere Instanzen eines Zifferblatts. Jede Instanz hat eine eindeutige ID, die auf allen API-Oberflächen verfügbar ist.
- Sie können jetzt für
ComplicationSlotsmenschenlesbare Namen für die Verwendung in Editoren angeben. - Unterstützung von „Geschmacksrichtungen“ für das Styling, einer kuratierten Auswahl von Stilen, die im Companion-Editor sichtbar sind.
- Wenn zwei Instanzen des Zifferblatts bearbeitet werden, können sich Zifferblattinstanzen jetzt Ressourcen teilen, wodurch Speicherplatz gespart wird.
- Wenn Sie im Zifferblatt-Editor auf der Smartwatch eine Zusatzfunktion auswählen, wird der aktuelle Anbieter jetzt vorausgewählt.
Verbesserte Komplikationen:
- Sie können jetzt die
ComplicationTypefür die primären und sekundären Datenquellen angeben. Das gibt Entwicklern mehr Flexibilität bei der Einrichtung. - Wir haben
ComplicationDataTimelinehinzugefügt. Damit wird eine Sequenz von zeitgesteuerten Daten bereitgestellt, die an das Zifferblatt gesendet, zwischengespeichert und automatisch aktualisiert werden können. Das kann beispielsweise die Wettervorhersage für heute zu verschiedenen Zeiten oder mehrere anstehende Kalendertermine sein. - Die
ComponentNamedes Complication-Anbieters ist Teil derComplicationData. - Zusatzfunktionen werden jetzt im Cache gespeichert, was für ein besseres Nutzererlebnis beim Wechseln zwischen Zifferblättern sorgt.
Sonstige Änderungen:
UserStyleSchemaundComplicationSlotskönnen jetzt in XML definiert werden. Das vereinfacht die Entwicklung von Zifferblättern und ermöglicht schnellere Metadatenabfragen durch das System.- Zifferblätter können jetzt die Farben beeinflussen, die zum Rendern des System-Overlays verwendet werden.
Version 1.1.0-rc01
18. Mai 2022
androidx.wear.watchface:watchface-*:1.1.0-rc01 ist veröffentlicht. Version 1.1.0-rc01 enthält diese Commits.
Neue Funktionen
- Wir haben einige Änderungen an der Unterstützung von Zifferblatt-XML vorgenommen, um die Angabe von
ComplicationSlotBoundsund Referenzen zu vereinfachen. Die Entwicklung von Edge-KomplikationenBoundingArcwird fortgesetzt und sie werden andrawHighlightweitergeleitet, obwohl die Verwendung zu diesem Zeitpunkt nicht empfohlen wird.
API-Änderungen
- Wir haben eine experimentelle Überladung von
drawHighlighthinzugefügt, die einenBoundingArc-Parameter akzeptiert. (I705f8) - Das XML-Format für Zifferblätter unterstützt jetzt Ressourcenverweise. So können Sie dieselben Konstanten sowohl in XML als auch in Ihrem Code verwenden. (I3ef61)
- Wir haben die Möglichkeit hinzugefügt,
ComplicationSlotBoundsin der Formcenter_x,center_y,size_x,size_yzu definieren. Jetzt ist es auch möglich, mit Ressourcenreferenzen verschiedene Einheiten (z.B. „dp“) zu verwenden. (Iace98)
Fehlerkorrekturen
- Fehler bei
runBlockingWithTracingbehoben, wodurch Aufgaben im falschen Kontext ausgeführt wurden.(4f595fe) BaseEditorSession.closesynchronisieren Das Problem mit der asynchronen Ausführung vonBaseEditorSession.closebesteht darin, dass wirComplicationDataSourceInfoRetrieverzu spät freigeben, was zu Warnungen in Logcat führt. Das war wahrscheinlich harmlos, aber Logcat-Spam ist störend und sollte vermieden werden.(35a5308)
Version 1.1.0-beta02
11. Mai 2022
androidx.wear.watchface:watchface-*:1.1.0-beta02 ist veröffentlicht. Version 1.1.0-beta02 enthält diese Commits.
Neue Funktionen
- Wir haben experimentelle Unterstützung für neue
ComplicationData-Typen hinzugefügt. Diese sind noch nicht einsatzbereit, aber wir arbeiten daran.
API-Änderungen
- Wir haben
BoundingArchinzugefügt, eine experimentelle Klasse, die die Geometrie eines Komplikations-Slots am Rand beschreibt. Dies wurdeComplicationSlothinzugefügt und anComplicationSlotStateundWatchFaceMetadataClientweitergeleitet. (I61a40) - Es ist jetzt möglich, Einstellungen in der
UserStyleSetting-XML zu übernehmen. So können Sie die Ausführlichkeit reduzieren und eine Einstellung für mehrere Zifferblätter freigeben. (Ief841) - Wir haben zwei neue experimentelle Arten von
ComplicationDatahinzugefügt:ListComplicationDataundProtoLayoutComplicationData. Derzeit werden beide Typen nicht gerendert und WearOS erkennt sie auch nicht, wenn sie einemComplicationDataSource's-Manifest hinzugefügt werden. (I1811c)
Fehlerkorrekturen
- Problem mit der Serialisierung des Typs
TimeLineEntrybehoben. Wir haben den TypTimeLineEntrynicht serialisiert. Das führte dazu, dass zwischengespeicherteTimeLineEntriesvom Typ „NoData“ fälschlicherweise als Typ der übergeordneten Komplikation interpretiert wurden. Das führte zu NPEs, wenn auf nicht vorhandene erforderliche Felder zugegriffen wurde. (55ffdf5) - Ein Fehler wurde behoben, bei dem
setComplicationDataZeitachsenfelder entfernt hat(fb392f5). - Ein Fehler wurde behoben, durch den
runBlockingWithTracingsehr selten zu einem NPE(12ca62e) führte. - Ein Fehler wurde behoben, bei dem beim Empfangen einer Komplikation manchmal
ClassNotFoundException: android.support.wearable.complications.ComplicationTextangezeigt wurde.(217942d9) - Ein Fehler in
GlesRenderer.backgroundThreadInitInternalwurde behoben, bei demonBackgroundThreadGlContextCreatednur aufgerufen wurde, wennEGL14.eglCreateContextaufgerufen wurde. Ein weiterer Fehler wurde behoben, bei dem im Screenshot ein visueller Fehler aufgrund vonverticalFlipaufgetreten ist.(c674ad2) - Der
WatchFaceService-XML-Versionscheck wurde korrigiert. Er wurde aus dem falschen Paket geladen.(dfa06f3) - Das Platzhalter-Wire-Format verwendet jetzt ein inneres Bundle. Wir möchten nicht, dass Platzhalter vorhandene Zifferblätter beschädigen, die möglicherweise die verborgene innere a.s.w.c.ComplicationData verwenden. Bisher wurde der Platzhalter im Wire-Format von
NoDataComplication-Daten in den üblichen Feldern gespeichert. Das war problematisch, weil alte Zifferblätter den Platzhalterstring renderten, was nicht beabsichtigt war. Stattdessen verwenden wir jetzt ein internes Bundle, um dies vollständig zu isolieren. (d5e7bd2)
Version 1.1.0-beta01
20. April 2022
androidx.wear.watchface:watchface-*:1.1.0-beta01 ist veröffentlicht. Version 1.1.0-beta01 enthält diese Commits.
API-Änderungen
- Die
WatchFaceMetadataClient-Methoden (getUserStyleSchema,getComplicationSlotMetadataMap,getUserStyleFlavors) undHeadlessWatchFaceClient.getUserStyleFlavorslösen jetzt eine ungeprüfte RuntimeException anstelle vonWatchFaceExceptionaus. (I0718a) WatchFaceMetadataClient.WatchFaceExceptionwurde aus der Klasse entfernt, damit es wiederverwendet werden kann. (I4e869)
Fehlerkorrekturen
WatchFaceMetadataClientstürzt nicht mehr ab, wenn teilweiseComplicationSlotBoundsgesendet werden.(Iaafd)
Version 1.1.0-alpha05
6. April 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha05 ist veröffentlicht. Version 1.1.0-alpha05 enthält diese Commits.
Neue Funktionen
- Sie können jetzt herausfinden, von welcher Datenquelle ein
ComplicationDatagesendet wurde, indem SieComplicationData.dataSourceprüfen. Einige Zifferblätter verwenden diese Informationen möglicherweise, um die Darstellung von Komplikationen anzupassen. (I44a73)
API-Änderungen
Renderer.CanvasRendererundRenderer.GlesRendererwurden zugunsten vonRenderer.CanvasRenderer2undRenderer.GlesRenderer2eingestellt, dieSharedAssetsunterstützen, die an die Rendermethoden übergeben werden. Für die Java-Interop haben wirListenableCanvasRenderer2undListenableGlesRenderer2eingeführt. (I31ffa)@WatchFaceFlavorsExperimental-Funktion zum Definieren von Varianten hinzugefügt – vorkonfigurierte Liste mit stilisierten Zifferblättern (I04dd0)Renderer.sharedAssetsist jetzt ein StateFlow und wir haben den ungenutztenRenderer.SharedAssetsFactory(I12ac5) entfernt.UserStyleSchema.userStyleSettingsist nicht mehr veraltet (Iba7e3)- Wir haben
HeadlessWatchFaceClient.getUserStyleSchemaDigestHashhinzugefügt, damit einHeadlessWatchFaceClientden relativ geringen Aufwand für die Übergabe des Schemas über AIDL vor der Berechnung des Digest-Hash vermeiden kann. (I33597) - Wir haben
isUserStyleSchemaStaticzuWatchFaceMetadataClienthinzugefügt. Der Wert ist nur dann „true“, wenn sichUserStyleSchemanur ändert, wenn das Zifferblatt-APK aktualisiert wird. (I45a3f) - Wir haben
getDigestHashzuUserStyleSchemahinzugefügt, um einen Digest-Hash des Schemas zu berechnen. So lässt sich effizient feststellen, ob sich dieUserStyleSchemageändert hat. (I2063d) METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIGURATION_SUPPORTEDwurde inMETADATA_KEY_DATA_SOURCE_DEFAULT_CONFIG_SUPPORTEDumbenannt (I9ba5d)UserStyleSetting.OnWatchEditorDatawurde inUserStyleSetting.WatchFaceEditorDataumbenannt. Es enthält Daten, die ausschließlich vom Editor für Zifferblätter verwendet werden. (If3afb)
Version 1.1.0-alpha04
9. März 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha04 ist veröffentlicht. Version 1.1.0-alpha04 enthält diese Commits.
API-Änderungen
- Aktuelle
ComplicationDatasind möglicherweise nicht immer verfügbar (z. B. abgelaufene zwischengespeicherte ComplicationData). Daher haben wirNoDataComplicationum einen optionalen Platzhalter für ComplicationData erweitert undComplicationText.PLACEHOLDER,MonochromaticImage.PLACEHOLDER,SmallImage.PLACEHOLDERundPhotoImage.PLACEHOLDERhinzugefügt, die nur im Kontext einesNoDataComplicationData-Platzhalters verwendet werden dürfen. Wenn diese Option ausgewählt ist, werden die Platzhalter mit grauen Kästchen/Bögen gerendert. (I6285d) - Wir haben
ComplicationData.getNextChangeInstanthinzugefügt. Damit wird der nächste Zeitpunkt nach dem Referenzzeitpunkt angegeben, zu dem sich ein Feld der Komplikation ändern kann. Dies wird intern verwendet, um Frames für Zusatzfunktionsupdates zu planen. Wenn ein Zifferblatt beispielsweise normalerweise einmal pro Minute aktualisiert wird, wird es durch das Festlegen der Stoppuhr-Kombination einmal pro Sekunde aktualisiert. (I7ceb2) EditorSession.watchFaceIdkann jetzt auf allen API-Ebenen verwendet werden. Außerdem stimmt der Wert jetzt immer mitWatchState.watchFaceInstanceIdüberein. (I323b9)- Die
getPendingIntentForTouchEventAPI ist nicht mehr erforderlich, da das zugrunde liegende Problem im Framework behoben wurde. Daher wurden alle zugehörigen APIs entfernt. Zifferblätter müssen nichts Besonderes tun, damitPendingIntentsausgelöst wird, auch wenn die Home-Schaltfläche vor Kurzem gedrückt wurde. (I1f2e8) - Wir haben
RendererParameters.isForScreenShothinzugefügt, das „true“ ist, wenn der Render für einen Screenshot bestimmt ist. Bei einigen Zifferblättern mit Animationen ist diese Information erforderlich, um Anpassungen vorzunehmen und so optimale Ergebnisse zu erzielen. (I96d99) - Wir haben
WatchFaceExceptionReasoninWatchFaceExceptionhinzugefügt, um den Fehler zu verdeutlichen. (I01d15) ComplicationDataSourceService.onImmediateComplicationRequestwurde entfernt. Stattdessen wurdeComplicationRequest.immediateResponseRequiredhinzugefügt, um zu signalisieren, dass der Anbieter schnell reagieren muss (idealerweise in weniger als 100 ms). Diese Funktion ist durch die Berechtigungcom.google.android.wearable.permission.USE_IMMEDIATE_COMPLICATION_UPDATEgeschützt. (Ie6b23)- Die Nullable-Annotationen in Core und AppCompat wurden aktualisiert, um mit Tiramisu DP2 übereinzustimmen (I0cbb7).
Fehlerkorrekturen
- Zifferblatt-App stürzt jetzt mit einer Ausnahme ab, wenn die Schemavalidierung fehlschlägt (Ia400f)
Version 1.1.0-alpha03
9. Februar 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha03 ist veröffentlicht. Version 1.1.0-alpha03 enthält diese Commits.
API-Änderungen
- Wir haben experimentelle Unterstützung für hierarchische Stilschemas hinzugefügt. Wir haben
androidx.wear.watchface.style.UserStyleSetting.Optioneine neue Property hinzugefügt: „childSettings“. Sie wird anfangs nur vonListOptionverwendet. So kann eine Hierarchie von Stilen für die Verwendung durch Editor-Benutzeroberflächen beschrieben werden. Der zugrunde liegende UserStyle bleibt unverändert und ist weiterhin einMap<String, ByteArray>. (Iaf6f4) - Wir haben
WatchFace.OverlayStylehinzugefügt, damit das Zifferblatt die Darstellung des Systemstatus-Overlays konfigurieren kann. (I8520d) - Wir haben
clearWithBackgroundTintBeforeRenderingHighlightLayereingeführt, einen neuen optionalen Konstruktorparameter fürCanvasRenderer(Standardwert ist „false“). Wenn er auf „true“ gesetzt ist, wird der Canvas mit der Hintergrundfarbe gelöscht. (Ie01e5) - Der Metadatenschlüssel
androidx.watchface.complications.datasource.DEFAULT_CONFIGURATION_SUPPORTEDwurde hinzugefügt. Damit können Datenquellen für Komplikationen angeben, dass sie einen Standardwert ohne Konfiguration bereitstellen können (Icc0d4). - Beim Bearbeiten eines Zifferblatts gibt es häufig sowohl eine interaktive als auch eine Headless-Instanz. Um Speicherplatz zu sparen, haben wir
Renderer.SharedAssetseingeführt. Damit kann ein Zifferblatt-Renderer unveränderliche Daten (z. B. Texturen und Shader) zwischen Instanzen freigeben.GlesRenderer.setEglConfigundGlesRenderer.setEglDisplaysind veraltet. Es war nie vorgesehen, dass diese festgelegt werden können, und dies hätte zu undefiniertem Verhalten geführt. (I0d9e7) - Wir haben
setNameResourceIdundsetScreenReaderNameResourceId(die auf String-Ressourcen verweisen) zuComplicationSlot.Builderund entsprechende Getter inandroidx.wear.watchface.client.ComplicationSlotStatehinzugefügt. So kann das System die Namen von ComplicationSlots für die Verwendung in Editoren und Screenreadern abrufen. (If6c6a) WatchfaceMetadataClient.getUserStyleSchemaundgetComplicationSlotMetadataMapgeben jetztWatchFaceExceptionanstelle vonRemoteExceptionzurück. (I86f11)onSynchronousComplicationRequestund zugehörige Funktionen inComplicationDataSourceServicewurden inonImmediateComplicationRequestusw. umbenannt. (I87ba0)- Zifferblatt-Editoren haben viel weniger Bildschirmfläche als Companion-Editoren. Daher ist es sinnvoll, unterschiedliche Symbole für Zifferblatt-Editoren zu unterstützen. Mit diesem Patch wird
OnWatchEditorData(derzeit nur ein Symbol) zu allen UserStyleSettings und gegebenenfalls zu den zugehörigen Options-Klassen hinzugefügt. (If1886) - Wir haben dem Konstruktor von ListenableGlesRenderer
@JvmOverloadshinzugefügt, um die Java-Interoperabilität zu verbessern. (I2974a)
Fehlerkorrekturen
- Der Konstruktor von
ListenableGlesRendererist jetzt korrekt als@Throws(GlesException::class)gekennzeichnet und die Klasse kann in Java erweitert werden. (Iac6d0) - Es wurde ein Fehler behoben, bei dem
PhotoImageComplicationDatatapAction nicht korrekt verarbeitet wurde (I1cc30).
Version 1.1.0-alpha02
12. Januar 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha02 ist veröffentlicht. Version 1.1.0-alpha02 enthält diese Commits.
Neue Funktionen
- Zur Unterstützung von Debugging und Tests haben
ComplicationDataund zugehörige abgeleitete Klassen jetzt überschriebene Methoden für „hashcode“, „equals“ und „toString“, was die Arbeit mit ihnen erleichtert.
API-Änderungen
WatchfaceMetadataClient-Methoden lösen bei Bedarf wiederRemoteExceptionsaus, sodass Clientcode Fehler vom Zifferblatt leichter abfangen kann. (I78785)ComplicationDataund untergeordnete Klassen haben jetzt hashcode, equals und toString. (I24bc6)
Version 1.1.0-alpha01
15. Dezember 2021
androidx.wear.watchface:watchface-*:1.1.0-alpha01 ist veröffentlicht. Version 1.1.0-alpha01 enthält diese Commits.
Neue Funktionen
UserStyleSchemaundComplicationSlotskönnen jetzt in XML definiert werden. Das vereinfacht die Erstellung von Zifferblättern. Außerdem sindWatchFaceMetadataClient-Abfragen schneller, da keine Bindung an den Dienst erforderlich ist, um die Metadaten abzurufen. DieWatchFaceMetadataClientundListenableWatchFaceMetadataClientsind nicht mehr experimentell und werden Teil der stabilen API. Das System kann optional mehrere Instanzen eines Zifferblatts unterstützen, die jeweils unterschiedliche nutzerdefinierte Formatierungsoptionen haben. Sie sind in der Zifferblattauswahl zu sehen. Damit ein Zifferblatt diese Funktion nutzen kann, muss es das folgende Metadatentag in seinem Manifest enthalten.<meta-data android:name="androidx.wear.watchface.MULTIPLE_INSTANCES_ALLOWED" android:value="true" />Einige Zifferblätter haben einen Status, der nicht in
UserStyleerfasst wird. Um dies und mehrere Instanzen zu unterstützen, ist die Instanz-ID des Zifferblatts jetzt überWatchState.watchFaceInstanceIdverfügbar.ComplicationDatawird jetzt im Cache gespeichert, damit Komplikationen sofort nach dem Laden angezeigt werden können. Manchmal wirdComplicationDatavom System im Arbeitsspeicher zwischengespeichert und manchmal von den Zifferblattbibliotheken serialisiert. Beim Serialisieren geht jede zugehörige „tapAction“ verloren. In diesem Fall gibtComplicationData.tapActionLostDueToSerializationden Werttruezurück und das Zifferblatt sollte die Komplikation anders darstellen (z. B. ausgegraut oder halbtransparent), um anzuzeigen, dass sie nicht angetippt werden kann. Das System sendet so schnell wie möglich aktualisierteComplicationDatamit einertapAction.Einige
ComplicationDatasollten nicht lange im Cache gespeichert werden. Dazu haben wir die allgemeinere FunktionComplicationDataTimelinehinzugefügt. Damit kann eine Sequenz von zeitgesteuertenComplicationDatabereitgestellt werden, die auf dem Zifferblatt angezeigt werden können und automatisch aktualisiert werden. Das kann beispielsweise die Wettervorhersage für heute zu verschiedenen Zeiten oder mehrere anstehende Kalendertermine sein.ComplicationRequestListenerwurde um die neue MethodeonComplicationDataTimelineerweitert, mit der Sie diese Daten zurückgeben können.DefaultComplicationDataSourcePolicywurde erweitert, sodass Sie dieComplicationTypefür die primären und sekundären Datenquellen angeben können.Wir haben Unterstützung für synchrone Anbieter von Zusatzfunktionen hinzugefügt. Dabei wird die Zusatzfunktion häufiger als normal aktualisiert, bis zu einmal pro Sekunde, wenn das Zifferblatt sichtbar und nicht im Ambient-Modus ist. Hinweis:Synchrone Anbieter von Komplikationen können aufgrund von Bedenken hinsichtlich des Speicherdrucks nur eingeschränkt verwendet werden.
Die Änderungen an
PendingIntentTapListenerwerden wahrscheinlich rückgängig gemacht, da wir das zugrunde liegende Problem (das Zifferblatt kann nicht 5 Sekunden nach dem Drücken der Home-Schaltfläche Aktivitäten starten) im Framework behoben haben.
API-Änderungen
ComplicationData.isCachedwurde intapActionLostDueToSerializationgeändert. Diese Eigenschaft ist nützlicher, um festzustellen, ob der Complication-Slot anders gerendert werden soll, um darauf hinzuweisen, dass er nicht angetippt werden kann. (I6de2f)ComplicationDataTimelinewurde zuwear-complication-data-sourcehinzugefügt. Damit kann eine Sequenz von zeitgesteuertenComplicationDatabereitgestellt werden, die auf dem Zifferblatt angezeigt werden können und automatisch aktualisiert werden. Das kann beispielsweise die Wettervorhersage für heute zu verschiedenen Zeiten oder mehrere anstehende Kalendertermine sein.ComplicationRequestListenerwurde um die neue MethodeonComplicationDataTimelineerweitert, mit der Sie diese Daten zurückgeben können. Es gibt einen neuen Kotlin-WrapperSuspendingTimelineComplicationDataSourceServicezum Anhalten von Datenquellendiensten. (Idecdc)PendingIntentTapListenerundWatchFaceControlClient.getPendingIntentForTouchEventwurden hinzugefügt. Dies kann bei Zifferblättern helfen, die als Reaktion auf Tippen Intents starten müssen, um ein Problem zu umgehen, bei dem das Framework das Starten neuer Aktivitäten für 5 Sekunden nach dem Drücken der Home-Schaltfläche blockiert. (I98074)- Es wurde ein
ComplicationData-Cache pro Zifferblatt eingeführt. So kann das Zifferblatt beim Laden die letzten bekannten Datenwerte der Komplikation anzeigen, bis das System sie aktualisiert hat. Es gibt eine neue API-MethodeWatchFaceControlClient.hasComplicationCache, die für OEMs vorgesehen ist. Dies kann sich auf die Strategie des Systems zum Senden von Zusatzfunktionen an ein Zifferblatt auswirken. Außerdem hatComplicationDataeineisCached-Property. Es wird empfohlen, zwischengespeicherte Komplikationen anders zu rendern, datapActionnicht zwischengespeichert werden kann und in einer zwischengespeicherten Komplikationnullist. (I404b0) - Die Instanz-ID des Zifferblatts ist jetzt über
WatchState.watchFaceInstanceIdverfügbar. Die meisten Zifferblätter müssen dies nicht verwenden. Wenn es jedoch einen Status pro Zifferblatt gibt, der nicht im Schema gespeichert ist, ist dies der Schlüssel, mit dem die Zifferblattinstanz identifiziert wird. Um dies zu unterstützen, können Sie jetzt eine ID angeben, wenn SieWatchFaceControlClient.createHeadlessWatchFaceClientaufrufen. (I1ff98) - Erweiterte
DefaultComplicationDataSourcePolicymit der Möglichkeit, die Standard-ComplicationTypesfür den primären und sekundären Anbieter sowie für den Fallback-Systemanbieter festzulegen.ComplicationSlot.defaultDataSourceTypewurde eingestellt. (If0ce3) ComplicationSlot.configExtrasist jetzt veränderbar und kann vor dem Aufrufen vonEditorSession.openComplicationDataSourceChooser()aktualisiert werden. (I6f852)WatchFace.setComplicationDeniedDialogIntentundsetComplicationRationaleDialogIntentwurden hinzugefügt. Diese Intents werden gestartet, um vor dem Anfordern von Berechtigungen für Komplikationen einen Dialog mit einer Begründung anzuzeigen. Außerdem wird ein weiterer Dialog angezeigt, in dem erklärt wird, dass Berechtigungen für Komplikationen erforderlich sind, wenn versucht wird, eine Komplikation zu bearbeiten, wenn Berechtigungen verweigert wurden. Die Anbieterauswahl kann dann nicht geöffnet werden, daher ist der Dialog erforderlich. (I3a29c)UserStyleSchemaundComplicationSlotskönnen jetzt in XML definiert werden. Das vereinfacht die Erstellung von Zifferblättern und beschleunigtWatchFaceMetadataClient-Anfragen, da keine Bindung an den Dienst erforderlich ist, um die Metadaten abzurufen. (I85bfa)InteractiveWatchFaceClient.supportsPendingIntentForTouchEventwurde hinzugefügt, damit ein Client feststellen kann, ob ein ZifferblattgetPendingIntentForTouchEventunterstützt. (I0b917)WatchFaceMetadataClientundListenableWatchFaceMetadataClientsind nicht mehr experimentell. Sie können verwendet werden, um effizient Metadaten für Zifferblätter abzurufen, sofern dies möglich ist, ohne einen Binder für das Zifferblatt zu öffnen. (Ibb827)- Unterstützung für synchrone Anbieter von Zusatzfunktionen hinzugefügt, bei denen die Zusatzfunktion häufiger als normal aktualisiert wird, bis zu einmal pro Sekunde, wenn das Zifferblatt sichtbar und nicht im Ambient-Modus ist. Dazu muss der Anbieter in seinem Manifest ein neues
androidx.wear.watchface.complications.data.source.SYNCHRONOUS_UPDATE_PERIOD_SECONDS-Metadatentag einfügen undonSynchronousComplicationRequestüberschreiben. Je nach Art der Datenquelle müssen möglicherweise auchonStartSynchronousComplicationRequestsundonStopInteractiveComplicationRequestsüberschrieben werden, um Benachrichtigungen zu erhalten, wenn die Komplikation in den interaktiven Modus wechselt und ihn verlässt. (I8fe9d)
Version 1.0
Version 1.0.1
9. Februar 2022
androidx.wear.watchface:watchface-*:1.0.1 ist veröffentlicht. Version 1.0.1 enthält diese Commits.
Fehlerkorrekturen
- Es wurde ein Fehler behoben, bei dem
PhotoImageComplicationDatatapAction nicht korrekt verarbeitet wurde (I1cc30).
Version 1.0.0
1. Dezember 2021
androidx.wear.watchface:watchface-*:1.0.0 ist veröffentlicht. Version 1.0.0 enthält diese Commits.
Wichtige Funktionen von Version 1.0.0
Das androidx.wear.watchface-Paket ist die neue empfohlene Bibliothek für die Entwicklung von WearOS-Zifferblättern. Sie bietet eine Reihe neuer Funktionen im Vergleich zur alten Wearable Support Library.
- Die Bibliothek unterstützt direkt die Gestaltung durch Nutzer (z. B. zum Ändern der Farbpalette, des Stils der Zeiger oder des Aussehens der Stundenmarkierungen) (siehe
androidx.wear.watchface.style). Es ist jetzt viel einfacher, einen Editor für das Zifferblatt mit androidx.wear.watchface.editor zu entwickeln. Das Zifferblatt kann über die Companion-App des Systems bearbeitet werden, ohne dass Sie zusätzlichen Code schreiben müssen. - Integrierte Best Practices Die Bibliothek hat automatisch Labels für die Sprachausgabe für Komplikationen generiert. Sie können auch eigene hinzufügen. Die Framerate wird automatisch reduziert, wenn der Akku schwach ist und nicht geladen wird, um die Akkulaufzeit zu verlängern.
- Für die Entwicklung eines Zifferblatts ist weniger Code erforderlich, insbesondere für Komplikationen, bei denen ein Großteil des Standardcodes in die Bibliothek verschoben wurde.
Fehlerkorrekturen
- Fehler bei
EditorSession.userStyle.compareAndSetbeheben (I6f676) - Sehr kurze Verzögerungen bei Zifferblättern beheben (Iffb97)
InteractiveWatchFaceImpl.onDestroyim UI-Thread ausführen (I83340)- Mehrere Probleme mit Broadcast-Empfängern behoben (I7d25f)
Version 1.0.0-rc01
3. November 2021
androidx.wear.watchface:watchface-*:1.0.0-rc01 ist veröffentlicht. Version 1.0.0-rc01 enthält diese Commits.
Fehlerkorrekturen
Fehler in dump() (aufgerufen von „adb shell dumpsys“) beheben, der durch Flow-Migrationen verursacht wurde. (087cf9e)
Achten Sie auf die richtige Reihenfolge von „writeDirectBootPrefs“. Wir möchten, dass „writeDirectBootPrefs“ immer nach „initStyleAndComplications“ ausgeführt wird, da sonst die Initialisierung des UI-Threads verzögert werden könnte.(37650ac)
Achten Sie darauf, dass Renderer.onDestroy aufgerufen wird. Wenn der Renderer erstellt wurde, die WF-Initialisierung aber nicht abgeschlossen ist und Engine.onDestroy aufgerufen wird, müssen wir Renderer.onDestroy aufrufen. (f9952dc)
Optimierung/Korrektur für isBatteryLowAndNotCharging. Durch diesen Patch wird die anfängliche Einrichtung von „isBatteryLowAndNotCharging“ früher ausgeführt, sodass sie parallel zu „createWatchFace“ erfolgen kann. Außerdem wird jetzt auf ACTION_POWER_DISCONNECTED reagiert. (ddffd80
InteractiveWatchFaceClientImpl.isConnectionAlive muss nach dem Schließen „false“ sein (ab9774e)
Version 1.0.0-beta01
27. Oktober 2021
androidx.wear.watchface:watchface-*:1.0.0-beta01 ist veröffentlicht. Version 1.0.0-beta01 enthält diese Commits.
Version 1.0.0-alpha24
13. Oktober 2021
androidx.wear.watchface:watchface-*:1.0.0-alpha24 ist veröffentlicht. Version 1.0.0-alpha24 enthält diese Commits.
API-Änderungen
- Klassen im Paket
androidx.wear.watchface.complicationswurden in ein neueswear:watchface:watchface-complications-Projekt verschoben. Das bedeutet, dass Sie diese Bibliothek und alle vorherigen Alphaversionen vonwear:watchface:watchface-complications-datanicht einbinden können, da sonst Fehler wegen doppelter Klassen auftreten. (I97195) - Renderer.dump wurde in Renderer.onDump umbenannt und mit @UiThread annotiert. (I44845)
InteractiveWatchFaceClient.addWatchFaceReadyListenerwurde inaddOnWatchFaceReadyListenerundremoveWatchFaceReadyListenerinremoveOnWatchFaceReadyListenerumbenannt. (I48fea)- EditorSession
getComplicationsPreviewDataundgetComplicationsDataSourceInfosind keine suspend-Funktionen mehr, sondernStateFlow<>-Properties, deren Wert anfangs null ist. In ListenableEditorSession wurdengetListenableComplicationPreviewDataundgetListenableComplicationsProviderInfozugunsten der neuenStateFlow<>-Objekte aus der Basisklasse entfernt. Wenn Sie auf Änderungen im Java-Code reagieren müssen, sollten Sieandroidx.lifecycle.FlowLiveDataConversions.asLiveDataverwenden, um zuLiveData<>zu konvertieren. (Ic5483)
Version 1.0.0-alpha23
29. September 2021
androidx.wear.watchface:watchface-*:1.0.0-alpha23 ist veröffentlicht. Version 1.0.0-alpha23 enthält diese Commits.
Neue Funktionen
Die Zifferblattbibliothek ist jetzt eine einzelne Bibliotheksgruppe. Daher wurden die Bibliotheken verschoben und Sie müssen Ihre Gradle-Importe wie folgt aktualisieren:
| Alt | Neu |
|---|---|
androidx.wear:wear-complications-data |
androidx.wear.watchface:watchface-complications-data |
androidx.wear:wear-complications-data-source |
androidx.wear.watchface:watchface-complications-data-source |
androidx.wear:wear-watchface |
androidx.wear.watchface:watchface |
androidx.wear:wear-watchface-complications-rendering |
androidx.wear.watchface:watchface-complications-rendering |
androidx.wear:wear-watchface-client |
androidx.wear.watchface:watchface-client |
androidx.wear:wear-watchface-client-guava |
androidx.wear.watchface:watchface-client-guava |
androidx.wear:wear-watchface-data |
androidx.wear.watchface:watchface-data |
androidx.wear:wear-watchface-editor |
androidx.wear.watchface:watchface-editor |
androidx.wear:wear-watchface-editor-guava |
androidx.wear.watchface:watchface-editor-guava |
androidx.wear:wear-watchface-guava |
androidx.wear.watchface:watchface-guava |
androidx.wear:wear-watchface-style |
androidx.wear.watchface:watchface-style |
API-Änderungen
- Migrieren Sie die separaten Bibliotheken
androidx.wearfür Zifferblätter und Komplikationen in die Bibliotheksgruppeandroidx.wear.watchface. (b25f3c0) - „EditorRequest.canWatchFaceSupportHeadlessEditing“ wurde hinzugefügt, damit ein Client erkennen kann, ob ein Zifferblatt-Editor die Headless-Bearbeitung unterstützt. Es wird einige falsch negative Ergebnisse geben, da die Unterstützung in asop/1756809 hinzugefügt wurde. Für alle zukünftigen Zifferblätter wird jedoch der richtige Wert zurückgegeben. (ca55590)
- Renderer hat jetzt eine dump()-Methode, die überschrieben werden kann, um den Informationen, die von ABD-Shell-Dumpsys-Aktivitätsdienst WatchFaceService generiert werden, benutzerdefinierte Daten hinzuzufügen. (95235f9)
- Bei InteractiveWatchFaceClient.addWatchFaceReadyListener wird jetzt zuerst der Executor angegeben. (563ac2f)
- StateFlowCompatHelper wurde entfernt. Verwenden Sie stattdessen asLiveData (androidx.lifecycle.asLiveData). (bd35d3)
- CurrentUserStyleRepository.userStyle kann nicht mehr geändert werden. (I44889)
- „WatchFaceReadyListener“ wurde in „OnWatchFaceReadyListener“ umbenannt. (Ic12a9)
Fehlerkorrekturen
- InteractiveInstanceManager.deleteInstance aufrufen, um onDestroy aufzurufen. Dies ist erforderlich, damit InteractiveWatchFaceImpl per Garbage Collection entfernt wird.(fce4af8, b/199485839)