Wear-Zifferblatt
Hinweis : Das Watch Face-Format ist erforderlich, damit Zifferblätter auf Geräten mit vorinstalliertem Wear OS 5 oder höher installiert werden können. Außerdem ist es für alle neuen Zifferblätter erforderlich, 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 Version | Releasekandidat | Beta-Ausgabe | Alphaversion | 
|---|---|---|---|---|
| 23. April 2025 | 1.2.1 | - | - | 1.3.0-alpha07 | 
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 der Datei build.gradle für Ihre App oder Ihr Modul die Abhängigkeiten für die erforderlichen Artefakte 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. Bitte teilen Sie uns mit, wenn Sie neue Probleme feststellen oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie ein neues erstellen. Sie können einer vorhandenen Anfrage Ihre Stimme geben, indem Sie auf die Schaltfläche mit dem Stern klicken.
Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.
Version 1.3
Version 1.3.0-alpha07
23. April 2025
androidx.wear.watchface:watchface-*:1.3.0-alpha07 wird veröffentlicht. Version 1.3.0-alpha07 enthält diese Commits.
Neue Funktionen
- Es ist schon seit einiger Zeit möglich, das UserStyle-Schema eines Zifferblatts zu definieren und ColorUserStyleSettingin XML zu definieren.
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, mit der eine Wear OS-App ein Zifferblatt programmatisch auf einer Smartwatch installieren kann.
Fehlerkorrekturen
- Anbieter von Zusatzfunktionen, die 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 wird veröffentlicht. Version 1.3.0-alpha06 enthält diese Commits.
Neue Funktionen
- Die Wear Watchface APIs (watchface, watchface-client, watchface-client-guava, watchface-complications-rendering, watchface-data, watchface-editor, watchface-editor-guava und watchface-style) wurden zugunsten des Wear Watchface-Formats eingestellt und werden aus AndroidX entfernt. Die Zusatzfunktionen-APIs werden nicht eingestellt und bleiben verfügbar. (Ice960)
- Die Zusatzfunktionen-APIs können jetzt direkt mit WearSDKkommunizieren, was aufgrund weniger IPC-Hops effizienter ist.
Version 1.3.0-alpha05
15. Januar 2025
androidx.wear.watchface:watchface-*:1.3.0-alpha05 wird veröffentlicht. Version 1.3.0-alpha05 enthält diese Commits.
Neue Funktionen
Auf Zifferblättern können Nutzer Farben in der Regel über eine ListUserStyle auswählen. Das funktioniert zwar, erfordert aber das Senden der Symbole über Bluetooth an den Companion-Editor, was ineffizient ist. Deshalb haben wir ColorUserStyleSetting eingeführt, bei dem die Nutzlast eine Liste mit einer oder mehreren Farben pro Stil ist, die ein deutlich kompakteres Wire-Format hat.
Wir haben eine Funktion für OEMs hinzugefügt, mit der OEM-Anbieter von Zusatzfunktionen ComplicationData für die Verwendung in OEM-Zifferblättern hinzufügen können.
API-Änderungen
- Die Klassen UserStyleSettingundUserStyleOptionhaben jetzt Builder, die empfohlene Methode zum Erstellen dieser Klassen. (Iacd03)
- Unterstützung für das Übergeben von Extras in ComplicationData. Diese Funktion ist für OEMs gedacht, die sowohl den Anbieter der Zusatzfunktion als auch das empfangende Zifferblatt steuern. Zum Festlegen eines Extras ist die Berechtigungcom.google.android.wearable.permission.COMPLICATION_EXTRASerforderlich. (I4e3b2)
- Bei Zifferblättern können Nutzer in der Regel Farben mithilfe einer ListUserStyleauswählen, wobei jedesListOptionein Symbol hat. DaUserStyle-Schemas über Bluetooth gesendet werden, ist es wichtig, die Größe des Schemas klein zu halten. Das kann ein Problem sein, wenn aufgrund der vielen Symbole viele Dutzend Farboptionen angegeben werden. Dazu haben wirColorUserStyleSettinghinzugefügt, bei dem die Option eine Liste von Farben anstelle eines Symbols enthält. Das ist viel kompakter. (Ib542e)
- Für ColorUserStyleSettingundColorOptionist API 34 erforderlich. (I8771d)
Fehlerkorrekturen
- Diese Bibliothek verwendet jetzt JSpecify-Null-Anmerkungen, die sich auf den Typ beziehen. Kotlin-Entwickler sollten das folgende Compilerargument 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 wird veröffentlicht. Version 1.3.0-alpha04 enthält diese Commits.
Neue Funktionen
- Unterstützung für das Lazy-Loading von Symbolen in UserStyleSettingsundUserStyleOptionshinzugefügt, was die Leistung beim Laden von Zifferblättern verbessert. (Iaf43d)
- Es wurde eine Option hinzugefügt, über die ein aktualisierter Screenshot aufgenommen werden kann, wenn sich die Systemkonfiguration ändert (z.B. wenn sich die Sprache geändert hat).Watchface.setUpdateScreenshotOnConfigurationChangeDiese Einstellung ist standardmäßig deaktiviert. (I765a1)
Fehlerkorrekturen
- Die manuelle Kennzeichnung des Zugriffs auf neue Plattform-APIs wurde entfernt, da dies bei Verwendung von R8 mit AGP 7.3 oder höher (z.B. R8 Version 3.3) und für alle Builds bei Verwendung von AGP 8.1 oder höher (z.B. D8 Version 8.1) automatisch über die API-Modellierung erfolgt. Kunden, 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 wird veröffentlicht. Version 1.3.0-alpha03 enthält diese Commits.
API-Änderungen
- Wir haben EditorSession#setOverrideComplicationshinzugefügt, mit dem dieComplicationDatader zugrunde liegenden Zifferblattinstanz während der Bearbeitung vorübergehend festgelegt wird. Wenn sich Zusatzfunktionen selten ändern, ist dies effizienter als das Übergeben von Überschreibungen überEditorSession#renderWatchFaceToBitmap. (I19384)
Fehlerkorrekturen
- Bisher wurde selectComplicationDataForInstantfür alle Zeitachsen vontoApiComplicationDataaufgerufen, was bedeutete, dass der nachfolgende Test der Referenzgleichheit immer fehlschlug. Das führte dazu, dass die Zusatzfunktionen bei jedem Frame neu geladen wurden, was den Akku schneller entladen hat. (717406)
Version 1.3.0-alpha02
3. April 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha02 wird 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 teuer 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 wird veröffentlicht. Version 1.3.0-alpha01 enthält diese Commits.
Neue Funktionen
- WatchFaceServiceskönnen gleichzeitig initialisiert werden und sollten daher ohne Status sein. Zu diesem Zweck haben wir- StatefulWatchFaceServicehinzugefügt, in dem ein von- createExtra()erstelltes benutzerdefiniertes Extra an alle Overrides ü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 mit- eglChooseConfigausprobiert werden sollen.
API-Änderungen
- StatefulWatchFaceServiceunterstützt jetzt eine Überschreibung von- getComplicationSlotInflationFactory, in die das von- createExtra()erstellte benutzerdefinierte Extra übergeben wird. (I82d9f)
- Bei einigen Zifferblättern müssen Hilfsdaten, die während createUserStyleSchemaerstellt wurden, mit den anderen Initialisierungsmethoden geteilt werden. Da es keine bessere Alternative gab, haben Entwickler ihreWatchFaceServicesin der Regel zustandsabhängig gemacht. Das ist gefährlich, da 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. Diese Funktion ist vor allem für OEMs von Interesse. (I0f5d8)
- GlesRenderer2hat jetzt eine Konstruktorüberladung, mit der Sie eine Liste von Attributen angeben können, die nacheinander mit- eglChooseConfigausprobiert werden sollen. So können Sie beispielsweise zuerst eine Konfiguration mit Anti-Aliasing ausprobieren und bei Bedarf zu einer Konfiguration ohne Anti-Aliasing wechseln. (I1ba74)
- Ab Android U wird WearOS die Unterstützung für SystemDataSources.DATA_SOURCE_HEART_RATEhinzugefügt. Diese Zusatzfunktion unterstützt nurSHORT_TEXT-Zusatzfunktionen. Es wird jedoch empfohlen, dass dieComplicationSlotauchSMALL_IMAGEunterstützt, da OEMs anstelle des Livewerts einen Verknüpfung zu ihrer Gesundheits-App anzeigen können. (I34223)
- Wir haben METADATA_KEY_CONFIG_RESTORE_SUPPORTEDhinzugefügt, mit dem ab Android U festgelegt wird, was passiert, wenn das System aus einer Sicherung für die Zusatzfunktionsdatenquelle mitMETADATA_KEY_DATA_SOURCE_CONFIG_ACTIONwiederhergestellt wird. Standardmäßig geht das System davon aus, dass der Dienst für die Zusatzfunktionen-Datenquelle die Sicherung aller Konfigurationsdaten unterstützt. Ist dies nicht der Fall, kann die MetadateneinstellungMETADATA_KEY_DATA_SOURCE_CONFIG_ACTIONauf „false“ gesetzt werden, wodurch der Zusatzfunktionen-Slot als nicht konfiguriert markiert wird. (I6c505)
Version 1.2
Version 1.2.1
24. Januar 2024
androidx.wear.watchface:watchface-*:1.2.1 wird 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 wird 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 Zusatzfunktionen hinzugefügt, die ab Android T verfügbar sind:
- GoalProgressComplicationDataähnelt- RangedValueComplicationData, bezieht sich aber auf den Fortschritt bei der Erreichung eines Ziels, wobei „min“ implizit „0“ ist und der Wert größer als- targetValuesein darf.
- WeightedElementsComplicationData, das aus einem Array von Elementen (Paare aus Gewicht und Farbe) sowie optionalem Text/Titel/Bild besteht. Diese können als Kreisdiagramm dargestellt werden, wobei die Farben im Kontext aussagekräftig sein müssen, da in einer Zusatzfunktion in der Regel kein Platz für Labels vorhanden ist.
 
- RangedValueComplicationDataunterstützt jetzt optional- ColorRanges. Normalerweise werden Zusatzfunktionen in den Farben des Zifferblatts gerendert. Manchmal ist es jedoch am besten, die Farben über die- ComplicationDataSourcefestzulegen, z. B. wenn sie eine bestimmte semantische Bedeutung haben. Beispiel: Rot zu Blau für die Temperatur.
- SmallImageswird jetzt von fast allen- ComplicationData-Typen unterstützt.
- Wir haben ComplicationDisplayPolicyhinzugefügt, woDO_NOT_SHOW_WHEN_DEVICE_LOCKEDein kompatibles Zifferblatt anweist, die Zusatzfunktion nicht anzuzeigen, wenn das Gerät gesperrt ist.
- Ab Android T können OEMs feststellen, ob eine Zusatzfunktionsanfrage von einem Zifferblatt in der Liste stammt, die durch die android.support.wearable.complications.SAFE_WATCH_FACES-Metadaten im Manifest des Anbieters bis zumComplicationRequest#isForSafeWatchFacedefiniert wurde. Der Anbieter benötigt die Berechtigungcom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE, um etwas anderes als „TargetWatchFaceSafety.UNKNOWN“ zu erhalten.
- UserStyleFlavorsist keine experimentelle Funktion mehr.
Version 1.2.0-rc01
18. Oktober 2023
androidx.wear.watchface:watchface-*:1.2.0-rc01 wird 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 wird veröffentlicht. Version 1.2.0-beta02 enthält diese Commits.
Neue Funktionen
- SuspendingComplicationDataSourceService#onDestroyist jetzt geöffnet. Die Unterstützung für die Standardwetterkomplikation des Systems wurde entfernt.
API-Änderungen
- Rückgängig machen der Option „Neue Datenquelle für Wetter-Zusatzfunktionen bereitstellen“ (I6f335)
Version 1.2.0-beta01
23. August 2023
androidx.wear.watchface:watchface-*:1.2.0-beta01 wird veröffentlicht. Version 1.2.0-beta01 enthält diese Commits.
Neue Funktionen
- Ab Android T unterstützt WearOS jetzt eine Standardkomplikation für das Wettersystem.
API-Änderungen
- Wetter-Standardsystem-Fallback für Zusatzfunktionen hinzufügen (Ia0994)
- Mit diesem Patch werden WatchFaceRuntimeServiceundWatchFaceControlClient.createWatchFaceRuntimeControlClientsowie Guava-Wrapper hinzugefügt. Dadurch wird die Unterstützung für Zifferblatt-Laufzeiten hinzugefügt. Das sind spezielle Zifferblätter, deren Definition aus einem anderen Paket geladen wird. Derzeit unterstützt WearOS nur die Laufzeit für das Android-Zifferblattformat. (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)
- API-Dateien wurden aktualisiert, um die Unterdrückung der Kompatibilität zu kennzeichnen. (I8e87a, b/287516207)
- Dieser Patch stellt WatchFaceType-Konstanten inWatchFaceTypes,CanvasType-Konstanten inCanvasTypes,TapType-Konstanten inTapTypesundComplicationsSlotBoundsType-Konstanten inComplicationsSlotBoundsTypebereit. (I3b85a, b/288750666)
- WatchFace.OverlayStylewird nur selten verwendet und wird von OEMs nicht gut unterstützt. Wir werden die Funktion daher schrittweise einschränken und später entfernen. (I7344a)
Version 1.2.0-alpha09
21. Juni 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha09 wird veröffentlicht. Version 1.2.0-alpha09 enthält diese Commits.
Neue Funktionen
- Für RangedValueComplicationData.Builderwird jetztDynamicFloatakzeptiert und als Unterklasse vonComplicationTextist eine neueDynamicComplicationTextverfügbar. Beide können dynamische Ausdrücke sowie Plattformbindungen verwenden, die auf unterstützten Wear 4-Geräten mit einer Frequenz von 1 Hz aktualisiert werden.
API-Änderungen
- Es wurden dynamische Typen für die zurückgelegte Strecke, die verbrannten Kalorien und die bewältigten Stockwerke pro Tag hinzugefügt. Schlüssel für Quellen zur Plattformintegrität sind jetzt unter PlatformHealthSources.Keys(Ib7637) zu finden.
- Implementiere PlatformDataProvider, um Herzfrequenz und tägliche Schrittzahl bereitzustellen. DieSensorGateway-Benutzeroberfläche wird aus der öffentlichen API entfernt. (I55b84)
- Benenne StateEntryValueinDynamicDataValueum und aktualisiere die Status-APIs, damit sieDynamicDataKeyverwenden. (If1c01)
- AppDataKeyzum Zugriff auf den von der App gesendeten Status hinzufügen;- PlatformDataKeyzum Zugriff auf Plattformdaten hinzufügen; Namespaceunterstützung in- StateStorehinzufügen (I7985e)
- Die enable/disablePlatformSource-Methoden wurden ausDynamicTypeEvaluatorentfernt. Der Anrufer sollte für Updates verantwortlich sein. (I78c6d)
- Größe gebundener Datentypen begrenzen (Ie2966)
Version 1.2.0-alpha08
19. April 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha08 wird veröffentlicht. Version 1.2.0-alpha08 enthält diese Commits.
Neue Funktionen
- Ab Android T können Anbieter von Zusatzfunktionen mit der 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 Anbieter von Zusatzfunktionen unterschiedliche Typen für vertrauenswürdige und nicht vertrauenswürdige Zifferblätter bereitstellen kann.
API-Änderungen
- Übertragen der @Deprecated-Klasse auf die Property (I882d1, b/271441831)
- Der Name des Wertparameters für Enum.valueOfwurde geändert (Ia9b89)
- Mehr geworfene Ausnahmen von enum valueOf (I818fe)
- Wir haben renderWatchFaceToSurfacezugunsten voncreateRemoteWatchFaceViewentfernt.createRemoteWatchFaceViewbasiert auf SurfaceControlViewHost und ermöglicht es dem Aufrufer, eine Ansicht aus dem 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 in- StateStoreumbenannt. (Ieb0e2)
- Anstelle von Konstruktorargumenten wurde DynamicTypeEvaluator.Builderhinzugefügt, um mehr optionale Argumente zuzulassen, darunterObservableStateStore, das jetzt standardmäßig auf einen leeren Store verweist. (I6f832)
- Die Reihenfolge der Parameter in DynamicTypeEvaluatorwurde überarbeitet. (Ic1ba4)
- Der DynamicTypeEvaluator.bind-Methoden wurde „Executor“ hinzugefügt. (I346ab)
- Wir haben der BoundDynamicType-Methode diestartEvaluation-Methode hinzugefügt, um die Auswertung nach der Bindung des dynamischen Typs auszulösen. (I19908)
- Anbieter von Zusatzfunktionen mit der 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)
- CustomValueUserStyleSettings2wurde in- LargeCustomValueUserStyleSettingsumbenannt. (Ic17ac)
Fehlerkorrekturen
- DynamicTypeValueReceiver#onPreUpdatewurde entfernt. (I2dc35)
Version 1.2.0-alpha07
22. Februar 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha07 wird veröffentlicht. Version 1.2.0-alpha07 enthält diese Commits.
Neue Funktionen
- Ab Android T können OEMs feststellen, ob eine Zusatzfunktionsanfrage von einem Zifferblatt in der Liste stammt, die durch die - android.support.wearable.complications.SAFE_WATCH_FACES-Metadaten im Manifest des Anbieters bis zum- ComplicationRequest#isForSafeWatchFacedefiniert wurde. Der Anbieter benötigt die Berechtigung- com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE, um andere Daten als- TargetWatchFaceSafety.UNKNOWNzu empfangen.
- Ab Android T ist auch - CustomValueUserStyleSetting2verfügbar, das bis zu 12,5 KB aufnehmen kann. Bisher war das Limit für- CustomValueUserStyleSetting1 KB. Trotz der erhöhten Größenbeschränkungen sollten Entwickler von Zifferblättern 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 GlesRendererundGlesRenderer2den optionalen ParametereglContextAttribListhinzugefügt, mit dem Sie den anEGL14.eglCreateContextübergebenenEGL14.EGL_CONTEXT_CLIENT_VERSIONfestlegen können. (I2a83e)
- Die Zifferblatt-Bibliotheken wurden von java.util.function.Consumerzuandroidx.core.util.Consumermigriert. (I273f5)
- Mehr geworfene Ausnahmen von KT-Property-Accessors (Iff9d9)
- Wir haben InteractiveWatchFaceClient.isComplicationDisplayPolicySupportedhinzugefügt, damit der Client feststellen kann, ob er die Unterstützung im Namen alter Zifferblätter emulieren muss oder nicht. (I24c89)
- Wir haben uns entschieden, dass isForSafeWatchFaceein Drei-Status-IntDefsein soll. (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 in ihrem Manifest angegeben wurde. (I0cbb6)
- Für Android T haben wir CustomValueUserStyleSetting2hinzugefügt, das bis zu 12,5 KB aufnehmen kann. Bisher war das Limit fürCustomValueUserStyleSetting1 KB. (I0b100)
Version 1.2.0-alpha06
25. Januar 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha06 wird veröffentlicht. Version 1.2.0-alpha06 enthält diese Commits.
Neue Funktionen
- Wir arbeiten daran, die Unterstützung für Plattformbindungen für Zusatzfunktionen hinzuzufügen. Diese Funktion ist noch nicht verfügbar.
- Wir haben die XML-ComplicationSlot-Unterstützung für die neuen Zusatzfunktionen „ZIELFORTSCHRITT“ und „GEWÄGTE ELEMENTE“ hinzugefügt.
Fehlerkorrekturen
- Ein Leck wurde behoben, durch das der Zifferblatteditor auf Samsung-Geräten nicht richtig veröffentlicht wurde. (3b5987)
- Ein Fehler wurde behoben, durch den die Zusatzfunktionen beim Wechseln zwischen einem Zifferblatt mit mehreren Favoriten manchmal nicht richtig angezeigt wurden. (b38ece)
- Ein Serialisierungsfehler mit perOptionScreenReaderNames, der zu Abstürzen des Zifferblatts führte, wurde behoben. (e9f466)
Version 1.2.0-alpha05
7. Dezember 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha05 wird 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. Seit Android T ist es nun möglich, mehr als eine- ComplicationSlotsUserStyleSettingin einer Hierarchie zu haben. Je nach Stilauswahl des Nutzers ist nur eine- ComplicationSlotsUserStyleSettingaktiv.
- Wir verbessern die Screenreader-Unterstützung für - ListOptionund- ComplicationSlotsOptiondurch das Hinzufügen eines- screenReaderName-Felds. Hinweis: Vor Android T wird dieses Feld von Companion-Editoren ignoriert.
API-Änderungen
- Wir haben ListOptionundComplicationSlotsOptionein neues optionales FeldscreenReaderNamehinzugefügt, das von Editoren verwendet werden kann. Auf Geräten mit einer älteren Android-Version wird es von Companion-Editoren ignoriert. (I75326)
- Ab Android T werden in einer Stilhierarchie jetzt mehrere ComplicationSlotsUserStyleSettingsunterstützt, solange jeweils nur eine davon aktiv sein kann. Wir habenUserStyleSchemadie DienstprogrammfunktionfindComplicationSlotsOptionForUserStylehinzugefügt, mit der Sie die aktiveComplicationSlotsOption(falls vorhanden) finden können. (Ic2b06)
- RangedValuesTypeswurden in das zugehörige Objekt von- RangedValueComplicationDatagezogen und in- TYPE_UNDEFINED,- TYPE_RATINGumbenannt. Außerdem wurde ein neues- TYPE_PERCENTAGEhinzugefügt. (I55d02)
- Die experimentelle Funktion DynamicFloatwurde inFloatExpressionumbenannt und als@hidegekennzeichnet. (Idf4f1)
- @JvmDefaultWithCompatibility-Anmerkung hinzufügen (I8f206)
Version 1.2.0-alpha04
9. November 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha04 wird veröffentlicht. Version 1.2.0-alpha04 enthält diese Commits.
Neue Funktionen
- Für Android T haben wir die Unterstützung für zwei neue Zusatzfunktionen hinzugefügt: GoalProgressComplicationDataundWeightedElementsComplicationData.
- GoalProgressComplicationDataähnelt- RangedValueComplicationData, aber sein Wert darf über das Ziel hinausgehen. Bei- RangedValueComplicationDataist der Wert auf den Bereich [min .. max] beschränkt. Das hat Auswirkungen auf das visuelle Design, die möglicherweise nicht für alle Zifferblätter geeignet sind.
- GoalProgressComplicationDataunterstützt jetzt auch Kreisdiagramme und ähnliche Aufschlüsselungen einfacher Daten.
- RangedValueComplicationDataunterstützt jetzt optional- ColorRamps.
- Für Android T haben wir ComplicationPersistencePolicyundsetCachePolicyzuComplicationDatahinzugefügt. Damit kann ein Anbieter derzeit festlegen, ob eine Zusatzfunktion beibehalten wird (d. h., ob sie nach dem Neustart im Cache gespeichert wird). Für die meisten Zusatzfunktionen muss die Cache-Steuerung nicht festgelegt werden. Dies kann jedoch bei einigen Zusatzfunktionen, die häufig aktualisiert werden (z. B. Zusatzfunktionen für Gesundheitsdaten), Probleme mit veralteten Daten beheben. Außerdem haben wirComplicationDisplayPolicyhinzugefügt, woDO_NOT_SHOW_WHEN_DEVICE_LOCKEDein kompatibles Zifferblatt anweist, die Zusatzfunktion nicht anzuzeigen, wenn das Gerät gesperrt ist. (Ic9574)
API-Änderungen
- GoalProgressComplicationData,- WeightedElementsComplicationDataund- ColorRampsind keine experimentellen Versionen mehr. (Ica9e2)
- ComplicationPersistencePolicyund- ComplicationDisplayPolicysind jetzt korrekt als T-APIs gekennzeichnet. (I31d88)
- Der verworfene 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.
- Die experimentellen ProtoLayoutComplicationDataundListComplicationDatawurden entfernt. Die Entwicklergeschichte für diese war unklar. Wir hoffen, sie in Zukunft noch einmal zu besprechen. (I9df05)
- Wir haben ValueTypewieder zuRangedValueComplicationDatahinzugefügt.WeightedElementsComplicationDataunterstützt jetzt eine Hintergrundfarbe. Wir habenDiscreteRangedValueComplicationDataentfernt, da seine Funktionen Teil vonWeightedElementsComplicationDatasind. (I6446c)
Fehlerkorrekturen
- Fügen Sie das isForScreenShotin den Gleichheitszeichen- und Hash-Code ein. Achten Sie darauf, dassonRenderParametersChangedden korrekten WertisForScreenshoterhält (I04a41).
- Lecks von WatchFaceControlServicevon headless-Clients wurden behoben. (e90e00)
Version 1.2.0-alpha03
5. Oktober 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha03 wird 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 eingestellt, da- rootUserStyleSettingsnicht mehr experimentell ist (Ie96e3)
- rootUserStyleSettingsaus der Testphase 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ßen Sie alle geöffneten Editoren, wenn SysUIdies tut. WennSysUInicht mehr funktioniert und der Editor für das Zifferblatt nicht geschlossen wird, kann das Zifferblatt in einem inkonsistenten Zustand bleiben, da das System Änderungen am Nutzerstil überSysUIspeichert.(ba762a
- Behebung eines Speicherlecks in ComplicationDataSourceInfoRetriever, bei dem eine Fortsetzung einer Kotlin-Coroutine als GC-Stamm fungierte und die Editoraktivität beibehielt.(33ee06)
Version 1.2.0-alpha02
21. September 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha02 wird veröffentlicht. Version 1.2.0-alpha02 enthält diese Commits.
Neue Funktionen
- Einige Zifferblätter haben eine Konfiguration außerhalb des - UserStyle, die sich optisch auf das Zifferblatt auswirkt, z.B. die Auswahl eines Hintergrundfotos. Wir haben- Renderer.sendPreviewImageNeedsUpdateRequesthinzugefügt, mit dem das Zifferblatt ein aktualisiertes Vorschaubild anfordern kann. Hinweis: Dazu ist ein entsprechendes Systemupdate erforderlich.
- Außerdem haben wir eine API für Zifferblätter hinzugefügt, über die die Farben dem System zur Verfügung gestellt werden können, das dann die Farbpalette entsprechend auswählen kann. Hinweis: Diese Funktion wurde in einem Folge-Patch als experimentell gekennzeichnet. 
- SmallImageswird jetzt von fast allen- ComplicationData-Typen unterstützt.
API-Änderungen
- Der Hintergrundmanager kann sich manchmal von einer Engine lösen und eine andere erstellen. Wir haben eine DisconnectReason-Integritätsprüfung hinzugefügt undClientDisconnectListenerum eine neue Methode mit einerDisconnectReasonerweitert, damit der Listener die Entsperrung des Motors beobachten kann. (I45cce)
- Dem Konstruktor von ComplicationSlotOverlaywurden 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. Dieser Status 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 zugetOrCreateInteractiveWatchFaceClienthinzugefügt, um diese Anfragen zu beobachten. (Iff44a)
- Wir haben die API für die Freigabe von WatchFaceColorsvereinfacht. Es gibt jetzt eine einfache Eigenschaft namenswatchFaceColorsim Renderer, die vom Zifferblatt festgelegt werden kann. Diese sollte bei Stiländerungen nach Bedarf aktualisiert werden. StattWallpaperManagerfür Farbänderungen zu verwenden, haben wirOnWatchFaceColorsListenerzuInteractiveWatchFaceClienthinzugefügt. (I490bc)
- Wir haben die Klasse WatchFaceColorshinzugefügt, die die drei wichtigsten Zifferblattfarben enthält, und dem Renderer die offenen MethodenwatchfaceColorsundnotifyWatchFaceColorsChangedhinzugefügt. So kann das System die Farben des Zifferblatts überWallpaperManager.getWallpaperColorsabrufen. (I3d611)
- ShortTextComplicationData,- RangedValueComplicationData,- NoPermissionComplicationData(und die experimentellen- DiscreteRangedValueComplicationData,- GoalProgressComplicationDataund- WeightedElementsComplicationData) unterstützen jetzt alle- SmallImages. Wenn auf einem Zifferblatt eine Zusatzfunktion in mehreren Farben gerendert werden soll, kann jetzt ein mehrfarbiges- SmallImageverwendet werden. Bisher war nur ein einfarbiges Bild möglich. (I257df)
- PreviewImageUpdateRequestedListenerin eine- Consumer<>umwandeln (Ia875d)
- Benutzerdefinierten SAM-Typ (Single Abstract Method, einzelne abstrakte Methode) OnWatchfaceColorsListenerdurch generischen Java-SAM-Typ (Consumer) ersetzen (I0c489)
- Die alten getOrCreateInteractiveWatchFaceClient- undlistenableGetOrCreateInteractiveWatchFaceClient-Methoden, für die keinePreviewImageUpdateRequestedListenerangegeben wird, wurden eingestellt. (Iec502)
Fehlerkorrekturen
- DisconnectReason.BINDER_DIEDwurde in- DisconnectReason.ENGINE_DIEDumbenannt. (I4eb0e)
Version 1.2.0-alpha01
10. August 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha01 wird veröffentlicht. Version 1.2.0-alpha01 enthält diese Commits.
Neue Funktionen
- Wir haben die experimentelle Unterstützung für verschiedene neue Zusatzfunktionen hinzugefügt. Dieser Bereich befindet sich in aktiver Entwicklung. Diese neuen Formate können sich ohne vorherige Ankündigung ändern. Derzeit gibt es keine Renderer-Unterstützung von CanvasComplicationDrawable.
- Außerdem haben wir den Zusatzoptionen für Zusatzfunktionen Ränder hinzugefügt, damit kleine Zusatzfunktionen leichter angetippt werden können.
API-Änderungen
- Die experimentelle BoundingArc-Klasse ist jetzt unveränderlich. (If624a)
- Kleine Zusatzfunktionen sind manchmal schwer zu antippen. Um dies zu vermeiden, haben wir die Unterstützung für Ränder eingeführt, die den berührbaren Bereich vergrößern, ohne das Rendering zu beeinträchtigen. Sofern nicht anders angegeben (entweder im Code oder über XML), haben ComplciationSlotskeine Ränder. (I14089)
- Die Signatur von getComplicationSlotInflationFactory(CurrentUserStyleRepository)wurde geändert, um eine nicht nullwertige Instanz der Standardklasse zurückzugeben. Es war ein Fehler, vorher „null“ zurückzugeben. Dadurch wird der API-Vertrag nur klarer. (I0fcc0)
- Wir haben der Methode WatchFaceService.getComplicationSlotInflationFactorydas ArgumentcurrentUserStyleRepositoryhinzugefügt, um für Einheitlichkeit mitcreateComplicationSlotsManagerzu sorgen. (I2ddd2)
- UserStyleFlavorssind keine experimentellen Funktionen mehr. (I69cdc)
- Wir haben die experimentelle ValueTypeausRangedValueComplicationDataentfernt und stattdessen die experimentelleDiscreteRangedValueComplicationDataeingeführt. Diese entsprichtRangedValueComplicationDatamit Ausnahme des Ganzzahlbereichs und des Ganzzahlwerts. Außerdem haben wir die experimentelle FunktionGoalProgressComplicationDataeingeführt. Diese ähneltRangedValueComplicationData, bezieht sich aber auf den Fortschritt bei einem Zielvorhaben, bei dem der Mindestwert implizit null ist und der Wert größer alstargetValuesein darf. Hinweis: Für alleRangedValue-Varianten muss mindestens eine der folgenden Optionen angegeben werden: „monochromeImage“, „text“ oder „title“. (I9590c)
- Wir haben boundsWithMarginsausComplicationSlotStateentfernt, da es für Systemsoftware keinen Anwendungsfall gibt. (I42e26)
- Wir haben experimentelle Unterstützung für WeightedElementsComplicationDatahinzugefügt, die aus einer Reihe von Elementen (Paare aus Gewicht und Farbe) sowie optionalem Text/Titel/Bild besteht. Diese können als Kreisdiagramm dargestellt werden, wobei die Farben im Kontext aussagekräftig sein müssen, da in einer Zusatzfunktion in der Regel kein Platz für Labels vorhanden ist. (I87eea)
- Mit dem experimentellen ColorRamps, das optional vonRangedValueComplicationDataundGoalProgressComplicationDataverwendet wird, können Sie jetzt eine Sequenz von bis zu sieben Farben und ein Flag angeben, das angibt, ob die Farben weich überblendet oder gleich große Farbschritte gerendert werden sollen. (I9f5bf)
- RangedValueComplicationData.drawSegmentedwurde in- valueTypegeändert. Dies ist ein Ganzzahltyp mit einem entsprechenden- ValueType IntDef, der dem Bereichswert eine semantische Bedeutung verleiht und vom Komplikations-Renderer verwendet werden kann, um das Styling zu beeinflussen. (I0616b)
- Wir haben RangedValueComplicationDatadie experimentelle Unterstützung für optionaleColorRangeshinzugefügt. Normalerweise werden Zusatzfunktionen in den Farben des Zifferblatts gerendert. Manchmal ist es jedoch am besten, die Farben über dieComplicationDataSourcefestzulegen, z. B. wenn sie eine bestimmte semantische Bedeutung haben. Beispiel: Rot zu Blau für die Temperatur. (I5153a)
- Wir haben RangedValueComplicationDataeinen experimentellendrawSegmented-Hinweis hinzugefügt. Dies signalisiert Renderern, die Anzeige für den Bereichswert mit Segmenten zu zeichnen, wobei 1 Segment = 1 Einheit entspricht. (I7d7c1)
Fehlerkorrekturen
- Sie können ComplicationSlotBoundsjetzt relativ zu einem vordefinierten Bildschirmkoordinatensystem definieren. (I0985d)
Version 1.1
Version 1.1.1
10. August 2022
androidx.wear.watchface:watchface-*:1.1.1 wird veröffentlicht. Version 1.1.1 enthält diese Commits.
- Diese Version enthält 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 wurde- pendingInitialComplicationszu früh angewendet. Das bedeutet, dass während der Initialisierung des Zifferblatts noch einige Zeit verstrich, in der Zusatzfunktionen auf- pendingInitialComplicationsangewendet und dann ignoriert wurden. Dieses Problem wurde inzwischen behoben. Außerdem behebt dieser Patch einen Fehler, bei dem- ComplicationRendererfälschlicherweise versuchte, Platzhalter asynchron zu laden, was fehlschlug und dazu führte, dass die Grafik für die Zusammenstellung nie aktualisiert wurde. Außerdem behebt dieser Patch einen hoffentlich theoretischen Fehler, bei dem mehrere- pendingInitialComplicationszusammengeführt werden müssen. (0d03ba3)
- Behebung eines potenziellen Deadlocks in - InteractiveInstanceManager, bei dem- getExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstanceden Sperrmechanismus länger als nötig gehalten hat. Normalerweise sollte- engine.setUserStyleschnell ausgeführt werden. Wenn das aus irgendeinem Grund nicht der Fall ist, kann es zu einem Deadlock oder einer ANR kommen. Mit diesem Patch wird unnötige Arbeit aus dem Sperrmechanismus entfernt, wodurch das Risiko einer Deadlock-Situation verringert wird.(5a2adca)
- Behebung mehrerer Probleme, bei denen - WatchFaceServicebeibehalten wurde Der WakeLock kann manchmal die- WatchFaceServicebeibehalten. Durch Hinzufügen eines- release()-Aufrufs lässt sich das Problem beheben. Außerdem kann- StateFlows- WatchFaceServicebeibehalten, wodurch das zugrunde liegende- CoroutineScopesaufgehoben wird.(fd48138)
- Fügen Sie - awaitDeferredWatchFace* Zeitüberschreitungen hinzu und korrigieren Sie- watchfaceOverlayStyle- NullPointerException. Unter normalen Umständen sollte es nicht zu einem Zeitüberschreitungsfehler kommen, auch nicht nach einer Neuinstallation und in- DirectBoot-Szenarien, in denen die CPU stark ausgelastet ist. Außerdem wurde ein Null-Pointer-Ausnahmefall behoben, der auftrat, wenn- getWatchfaceOverlayStylenach- close()aufgerufen wurde.(a4c3a5a)
Version 1.1.0
15. Juni 2022
androidx.wear.watchface:watchface-*:1.1.0 wird veröffentlicht. Version 1.1.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.0.0
Verbesserte Bearbeitung:
- Wir haben die Unterstützung für hierarchische Schemas hinzugefügt, mit denen eine Stilhierarchie über die Benutzeroberfläche des Editors beschrieben werden kann. Sie können jetzt separate Symbole für die Verwendung im Zifferblatt und im Companion-Editor angeben.
- Es gibt eine optionale Unterstützung für mehrere Instanzen eines Zifferblatts. Jede Instanz hat eine eindeutige ID, die für alle API-Oberflächen verfügbar ist.
- Sie können jetzt für ComplicationSlotsvisuell lesbare Namen für die Verwendung in Editoren angeben.
- Experimentelle Unterstützung für Stilvarianten, eine ausgewählte Sammlung von Stilen, die im Companion-Editor angezeigt werden.
- Wenn beim Bearbeiten zwei Zifferblattinstanzen geladen werden, können die Zifferblattinstanzen jetzt Ressourcen gemeinsam nutzen und so Speicher sparen.
- Wenn Sie im Zifferblatt-Editor eine Zusatzfunktion auswählen, ist der aktuelle Anbieter jetzt vorausgewählt.
Verbesserte Zusatzfunktionen:
- Sie können jetzt die ComplicationTypefür die primäre und sekundäre Datenquelle angeben, was Entwicklern mehr Flexibilität bei der sofort einsatzbereiten Nutzung bietet.
- Wir haben ComplicationDataTimelinehinzugefügt, das eine Sequenz von zeitgesteuerten Daten bereitstellt, die an das Zifferblatt gesendet werden. Diese Daten können im Cache gespeichert und automatisch aktualisiert werden. Beispielsweise die Wettervorhersage für heute zu verschiedenen Zeiten oder mehrere anstehende Kalendertermine.
- Die ComponentNamedes Zusatzanbieters ist Teil derComplicationData.
- Zusatzfunktionen werden jetzt im Cache gespeichert, was den Wechsel zwischen Zifferblättern erleichtert.
Weitere Änderungen:
- UserStyleSchemaund- ComplicationSlotskönnen jetzt in XML definiert werden. Das vereinfacht die Erstellung von Zifferblättern und ermöglicht schnellere Metadatenabfragen vom System.
- Zifferblätter können jetzt die Farben beeinflussen, die für das Rendern des System-Overlays verwendet werden.
Version 1.1.0-rc01
18. Mai 2022
androidx.wear.watchface:watchface-*:1.1.0-rc01 wird veröffentlicht. Version 1.1.0-rc01 enthält diese Commits.
Neue Funktionen
- Wir haben die Nutzerfreundlichkeit der XML-Unterstützung für Zifferblätter optimiert, sodass sich ComplicationSlotBoundsund unterstützende Referenzen jetzt einfacher angeben lassen. Die Tests mit der Zusatzfunktion „Ränder“BoundingArcwerden fortgesetzt und die Funktion wird bisdrawHighlightweitergeleitet. Die Verwendung wird derzeit jedoch nicht empfohlen.
API-Änderungen
- Wir haben eine experimentelle Überladung von drawHighlighthinzugefügt, die einenBoundingArc-Parameter akzeptiert. (I705f8)
- In der XML-Datei für Zifferblätter werden jetzt Ressourcenverweise unterstützt. So können Sie dieselben Konstanten sowohl in XML als auch in Ihrem Code verwenden. (I3ef61)
- Sie können ComplicationSlotBoundsjetzt in Form voncenter_x,center_y,size_xundsize_ydefinieren. Mithilfe von Ressourcenreferenzen können jetzt auch andere Einheiten (z.B. dp) verwendet werden. (Iace98)
Fehlerkorrekturen
- Behebung eines Problems bei runBlockingWithTracing, bei dem Aufgaben im falschen Kontext ausgeführt wurden (4f595fe)
- Machen Sie BaseEditorSession.closesynchron. Das Problem bei der asynchronen Ausführung vonBaseEditorSession.closeist, dass wir dieComplicationDataSourceInfoRetrieverzu spät freigeben, was zu Warnspam in logcat führt. Dies war wahrscheinlich harmlos, aber Logcat-Spam ist ablenkend und sollte vermieden werden.(35a5308)
Version 1.1.0-beta02
11. Mai 2022
androidx.wear.watchface:watchface-*:1.1.0-beta02 wird veröffentlicht. Version 1.1.0-beta02 enthält diese Commits.
Neue Funktionen
- Wir haben experimentellen Support 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 Zusatzbereichs an der Seite beschreibt. Dieser wurdeComplicationSlothinzugefügt und anComplicationSlotStateundWatchFaceMetadataClientangeschlossen. (I61a40)
- Es ist jetzt möglich, Einstellungen in UserStyleSetting-XML-Dateien 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 ComplicationData-Typen hinzugefügt:ListComplicationDataundProtoLayoutComplicationData. Derzeit gibt es keine Renderingunterstützung für diese beiden Typen und WearOS erkennt sie derzeit nicht, wenn sie einemComplicationDataSource's-Manifest hinzugefügt werden. (I1811c)
Fehlerkorrekturen
- Fehler bei der Serialisierung des Typs TimeLineEntrybehoben Der TypTimeLineEntrywurde nicht serialisiert. Das bedeutete, dass im Cache gespeicherteTimeLineEntriesvom Typ „NoData“ fälschlicherweise als vom Typ der übergeordneten Zusatzfunktion interpretiert wurden, was zu NPEs führte, wenn auf nicht vorhandene erforderliche Felder zugegriffen wurde. (55ffdf5)
- Fehler behoben, durch den in setComplicationDataZeitachsenfelder gelöscht wurden(fb392f5)
- Ein Fehler wurde behoben, durch den runBlockingWithTracingsehr selten zu einem Null-Pointer-Ereignis führte(12ca62e).
- Ein Fehler wurde behoben, durch den manchmal ClassNotFoundException: android.support.wearable.complications.ComplicationTextangezeigt wurde, wenn eine Zusatzfunktion empfangen wurde.(217942d9)
- Ein Fehler in GlesRenderer.backgroundThreadInitInternalwurde behoben, bei demonBackgroundThreadGlContextCreatednur dann aufgerufen wurde, wennEGL14.eglCreateContextaufgerufen wurde. Ein weiterer Fehler wurde behoben, bei dem durchverticalFlipein visueller Fehler im Screenshot verursacht wurde.(c674ad2)
- Korrektur der WatchFaceService-XML-Versionsprüfung, da das XML-Paket falsch geladen wurde (dfa06f3)
- Für das Platzhalter-Leiterformat wird jetzt ein inneres Bündel verwendet. Wir möchten nicht, dass durch Platzhalter vorhandene Zifferblätter beschädigt werden, die die ausgeblendete innere a.s.w.c.ComplicationData verwenden. Bisher wurde der Platzhalter im Wireformat von NoDataComplication-Daten in den üblichen Feldern gespeichert. Das war problematisch, da alte Zifferblätter den Platzhalter-String 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 wird veröffentlicht. Version 1.1.0-beta01 enthält diese Commits.
API-Änderungen
- Jetzt werfen WatchFaceMetadataClient-Methoden (getUserStyleSchema,getComplicationSlotMetadataMap,getUserStyleFlavors) undHeadlessWatchFaceClient.getUserStyleFlavorseine nicht geprüfte RuntimeException anstelle vonWatchFaceException. (I0718a)
- WatchFaceMetadataClient.WatchFaceExceptionwurde aus der Klasse entfernt, damit es wiederverwendet werden kann. (I4e869)
Fehlerkorrekturen
- WatchFaceMetadataClientstürzt nicht mehr ab, wenn teilweise- ComplicationSlotBoundsgesendet wird.(Iaafd)
Version 1.1.0-alpha05
6. April 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha05 wird veröffentlicht. Version 1.1.0-alpha05 enthält diese Commits.
Neue Funktionen
- Sie können jetzt anhand von ComplicationData.dataSourcesehen, welche Datenquelle eineComplicationDatagesendet hat. Einige Zifferblätter können diese Informationen verwenden, um die Anzeige von Zusatzfunktionen anzupassen. (I44a73)
API-Änderungen
- Renderer.CanvasRendererund- Renderer.GlesRendererwurden zugunsten von- Renderer.CanvasRenderer2und- Renderer.GlesRenderer2eingestellt. Diese unterstützen- SharedAssets, das an die Rendermethoden übergeben wird. Für die Java-Interoperabilität haben wir- ListenableCanvasRenderer2und- ListenableGlesRenderer2eingeführt. (I31ffa)
- @WatchFaceFlavorsExperimentalkann jetzt Varianten definieren – vorkonfigurierte Liste mit stilisierten Zifferblättern (I04dd0)
- Renderer.sharedAssetsist jetzt ein StateFlow und die nicht verwendete- Renderer.SharedAssetsFactory(I12ac5) wurde entfernt.
- UserStyleSchema.userStyleSettingsist nicht mehr eingestellt (Iba7e3)
- Wir haben HeadlessWatchFaceClient.getUserStyleSchemaDigestHashhinzugefügt, mit dem einHeadlessWatchFaceClientden relativ geringen Overhead vermeiden kann, der durch das Übergeben des Schemas über AIDL vor dem Berechnen des Hashwerts entsteht. (I33597)
- Wir haben isUserStyleSchemaStaticzuWatchFaceMetadataClienthinzugefügt. Dieser Wert ist nur dann „wahr“, wenn sichUserStyleSchemanur dann ändert, wenn das Zifferblatt-APK aktualisiert wird. (I45a3f)
- Wir haben getDigestHashzuUserStyleSchemahinzugefügt, wodurch ein Hashwert für das Schema berechnet wird. So lässt sich effizient feststellen, ob sich dieUserStyleSchemageändert hat. (I2063d)
- METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIGURATION_SUPPORTEDin- METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIG_SUPPORTEDumbenannt (I9ba5d)
- UserStyleSetting.OnWatchEditorDatawurde in- UserStyleSetting.WatchFaceEditorDataumbenannt. Es enthält Daten, die ausschließlich vom Zifferblatt-Editor verwendet werden. (If3afb)
Version 1.1.0-alpha04
9. März 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha04 wird veröffentlicht. Version 1.1.0-alpha04 enthält diese Commits.
API-Änderungen
- Aktuelle ComplicationData-Daten sind möglicherweise nicht immer verfügbar (z. B. abgelaufene zwischengespeicherte Zusatzdaten). Deshalb haben wirNoDataComplicationum einen optionalen Platzhalter für Zusatzdaten 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 diese Platzhalter mit grauen Rechtecken/Bogen dargestellt. (I6285d)
- Wir haben ComplicationData.getNextChangeInstanthinzugefügt. Dieser Wert gibt an, wann nach dem Referenzzeitpunkt das nächste Feld der Zusatzfunktion geändert werden kann. Dieser Wert wird intern verwendet, um Frames für Zusatzfunktionsupdates zu planen. Wenn sich ein Zifferblatt beispielsweise normalerweise einmal pro Minute aktualisiert, wird es durch die Einstellung der Stoppuhr-Komplikation einmal pro Sekunde aktualisiert. (I7ceb2)
- EditorSession.watchFaceIdkann jetzt auf allen API-Ebenen verwendet werden. Außerdem stimmt der Wert jetzt immer mit- WatchState.watchFaceInstanceIdüberein. (I323b9)
- Die getPendingIntentForTouchEventAPI ist nicht mehr erforderlich, da das zugrunde liegende Problem im Framework behoben wurde. Alle zugehörigen APIs wurden daher entfernt. Bei Zifferblättern muss nichts Besonderes getan werden, damitPendingIntentsausgelöst wird, auch wenn die Startbildschirmtaste vor Kurzem gedrückt wurde. (I1f2e8)
- Wir haben RendererParameters.isForScreenShothinzugefügt, das „wahr“ ist, wenn das Rendern für einen Screenshot erfolgt. Einige Zifferblätter mit Animationen benötigen diese Informationen, um Anpassungen vorzunehmen und so die besten Ergebnisse zu erzielen. (I96d99)
- Wir haben WatchFaceExceptionReasonzuWatchFaceExceptionhinzugefügt, um Ihnen einen besseren Überblick über das Problem zu geben. (I01d15)
- ComplicationDataSourceService.onImmediateComplicationRequestwurde entfernt und stattdessen- ComplicationRequest.immediateResponseRequiredhinzugefügt, um anzuzeigen, dass der Anbieter schnell reagieren muss (idealerweise in weniger als 100 ms). Diese Funktion ist durch die Berechtigung- com.google.android.wearable.permission.USE_IMMEDIATE_COMPLICATION_UPDATEgeschützt. (Ie6b23)
- Die Nullbarkeit in „core“ und „appcompat“ wurde an Tiramisu DP2 (I0cbb7) angepasst.
Fehlerkorrekturen
- Die Smartwatch-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 wird veröffentlicht. Version 1.1.0-alpha03 enthält diese Commits.
API-Änderungen
- Wir haben experimentelle Unterstützung für hierarchische Stilschemata hinzugefügt. Wir haben androidx.wear.watchface.style.UserStyleSetting.Optiondie neue Property „childSettings“ hinzugefügt, die anfangs nur vonListOptionverwendet wird. So kann eine Stilhierarchie für die Verwendung in Editor-Benutzeroberflächen beschrieben werden. Der zugrunde liegende UserStyle bleibt unverändert und ist weiterhin einMap<String, ByteArray>. (Iaf6f4)
- Wir haben WatchFace.OverlayStylehinzugefügt, mit dem das Zifferblatt das Rendern des Systemstatus-Overlays konfigurieren kann. (I8520d)
- Wir haben clearWithBackgroundTintBeforeRenderingHighlightLayerals neuen optionalen Konstruktorparameter fürCanvasRenderereingeführt (Standardwert ist „false“). Wenn dieser Parameter auf „true“ gesetzt wird, wird der Canvas mit der Hintergrundtonfarbe gelöscht. (Ie01e5)
- Der Metadatenschlüssel androidx.watchface.complications.datasource.DEFAULT_CONFIGURATION_SUPPORTEDwurde hinzugefügt, mit dem Datenquellen für Zusatzfunktionen angeben können, dass sie ohne Konfiguration einen Standardwert 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 teilen.GlesRenderer.setEglConfigundGlesRenderer.setEglDisplaysind nicht mehr unterstützt. Sie sollten nicht festgelegt werden, da dies zu undefiniertem Verhalten führen würde. (I0d9e7)
- Wir haben ComplicationSlot.Builderdie StringssetNameResourceIdundsetScreenReaderNameResourceIdhinzugefügt, die auf Stringressourcen verweisen, sowie die entsprechenden Getter inandroidx.wear.watchface.client.ComplicationSlotState. So kann das System die Namen von ComplicationSlots abrufen, um sie in Editoren und Screenreadern zu verwenden. (If6c6a)
- WatchfaceMetadataClient.getUserStyleSchemaund- getComplicationSlotMetadataMapgeben jetzt- WatchFaceExceptionstatt- RemoteExceptionzurück. (I86f11)
- onSynchronousComplicationRequestund zugehörige Funktionen in- ComplicationDataSourceServicewurden in- onImmediateComplicationRequestumbenannt usw. (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 allen UserStyleSettings und gegebenenfalls ihren Optionenklassen OnWatchEditorDatahinzugefügt, das derzeit nur ein Symbol enthält. (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 es ist jetzt möglich, diese Klasse in Java zu erweitern. (Iac6d0)
- Fehler behoben, bei dem die „tapAction“-Funktion von PhotoImageComplicationDatanicht richtig verarbeitet wurde (I1cc30)
Version 1.1.0-alpha02
12. Januar 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha02 wird veröffentlicht. Version 1.1.0-alpha02 enthält diese Commits.
Neue Funktionen
- Zur Unterstützung von Debugging und Tests wurden die Methoden „hashcode“, „equals“ und „toString“ von ComplicationDataund den zugehörigen Unterklassen überschrieben, um die Arbeit mit ihnen zu erleichtern.
API-Änderungen
- WatchfaceMetadataClient-Methoden werfen bei Bedarf wieder- RemoteExceptions, was es für den Clientcode einfacher macht, Fehler vom Zifferblatt zu erfassen. (I78785)
- ComplicationDataund die untergeordneten Klassen haben jetzt die Methoden „hashcode“, „equals“ und „toString“. (I24bc6)
Version 1.1.0-alpha01
15. Dezember 2021
androidx.wear.watchface:watchface-*:1.1.0-alpha01 wird veröffentlicht. Version 1.1.0-alpha01 enthält diese Commits.
Neue Funktionen
- UserStyleSchemaund- ComplicationSlotskönnen jetzt in XML definiert werden. Das vereinfacht die Erstellung von Zifferblättern. Außerdem sind- WatchFaceMetadataClient-Abfragen schneller, da sie nicht an den Dienst gebunden werden müssen, um die Metadaten abzurufen.- WatchFaceMetadataClientund- ListenableWatchFaceMetadataClientsind nicht mehr experimentell und werden Teil der stabilen API. Das System kann optional mehrere Instanzen eines Zifferblatts mit jeweils unterschiedlichen benutzerdefinierten Stiloptionen unterstützen. Sie werden in der Zifferblattauswahl angezeigt. Wenn Sie diese Funktion aktivieren möchten, muss das Zifferblatt das folgende Metadaten-Tag 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 der - UserStyleerfasst wird. Um diesen und mehrere Instanzen zu unterstützen, ist die Instanz-ID des Zifferblatts jetzt über- WatchState.watchFaceInstanceIdverfügbar.
- ComplicationDatawird jetzt im Cache gespeichert, damit Komplikationen sofort nach dem Laden angezeigt werden können. Manchmal wird- ComplicationDatavom System im Arbeitsspeicher im Cache gespeichert und manchmal von den Zifferblattbibliotheken serialisiert. Wenn die Komprimierung erfolgt, geht die zugehörige „tapAction“ verloren. In diesem Fall gibt- ComplicationData.tapActionLostDueToSerialization- truezurück und das Zifferblatt sollte die Zusatzfunktion anders darstellen (z. B. ausgegraut oder halbtransparent), um anzuzeigen, dass sie nicht angetippt werden kann. Das System sendet so schnell wie möglich eine aktualisierte- ComplicationDatamit einer- tapAction.
- Einige - ComplicationDatasollten nicht lange im Cache gespeichert werden. Daher haben wir eine allgemeinere Funktion- ComplicationDataTimelinehinzugefügt. So können Sie eine Sequenz von zeitverzögerten- ComplicationDatabereitstellen, die an das Zifferblatt gesendet werden. Diese können im Cache gespeichert und automatisch aktualisiert werden. Beispielsweise die Wettervorhersage für heute zu verschiedenen Zeiten oder mehrere anstehende Kalendertermine.- ComplicationRequestListenerwurde um die neue Methode- onComplicationDataTimelineerweitert, mit der Sie diese Daten zurückgeben können.
- DefaultComplicationDataSourcePolicywurde erweitert, sodass Sie die- ComplicationTypefür die primäre und sekundäre Datenquelle angeben können.
- Wir haben die Unterstützung für Anbieter von synchronen Zusatzfunktionen hinzugefügt. Bei diesen wird die Zusatzfunktion häufiger als normal aktualisiert, bis zu einmal pro Sekunde, wenn das Zifferblatt sichtbar und nicht im Modus „Im Hintergrund“ ist. Hinweis:Die Verwendung von Anbietern für synchrone Zusatzfunktionen kann aufgrund von Speicherproblemen eingeschränkt sein. 
- Die Änderungen an - PendingIntentTapListenerwerden wahrscheinlich rückgängig gemacht, da wir das zugrunde liegende Problem (das Zifferblatt kann nach dem Drücken der Startbildschirmtaste 5 Sekunden lang keine Aktivitäten starten) stattdessen im Framework gelöst haben.
API-Änderungen
- ComplicationData.isCachedwurde in- tapActionLostDueToSerializationgeändert. Dieser Wert ist hilfreicher, um zu bestimmen, ob der Zusatzbereich anders dargestellt werden soll, um anzuzeigen, dass er nicht angetippt werden kann. (I6de2f)
- ComplicationDataTimelinewurde zu- wear-complication-data-sourcehinzugefügt. So können Sie eine Sequenz von zeitverzögerten- ComplicationDatabereitstellen, die an das Zifferblatt gesendet werden. Diese können im Cache gespeichert und automatisch aktualisiert werden. Beispielsweise die Wettervorhersage für heute zu verschiedenen Zeiten oder mehrere anstehende Kalendertermine.- ComplicationRequestListenerwurde um die neue Methode- onComplicationDataTimelineerweitert, mit der Sie diese Daten zurückgeben können. Es gibt einen neuen Kotlin-Wrapper- SuspendingTimelineComplicationDataSourceServicezum Pausieren von Datenquellendiensten. (Idecdc)
- PendingIntentTapListenerund- WatchFaceControlClient.getPendingIntentForTouchEventwurden hinzugefügt. Das kann bei Zifferblättern hilfreich sein, bei denen Intents als Reaktion auf Tippen gestartet werden müssen, um ein Problem zu umgehen, bei dem das Framework das Starten neuer Aktivitäten nach dem Drücken der Startbildschirmtaste für 5 Sekunden blockiert. (I98074)
- Einführung eines pro Zifferblatt ComplicationDataCache. So kann das Zifferblatt beim Laden die letzten bekannten Datenwerte der Zusatzfunktionen anzeigen, bis das System sie aktualisiert hat. Es gibt eine neue API-MethodeWatchFaceControlClient.hasComplicationCachefür OEMs. Dies kann sich auf die Strategie des Systems für das Senden von Zusatzfunktionen an ein Zifferblatt auswirken. Außerdem hatComplicationDataeineisCached-Eigenschaft. Es wird empfohlen, zwischengespeicherte Zusatzfunktionen anders zu rendern, da dietapActionnicht zwischengespeichert werden kann und in einer zwischengespeicherten Zusatzfunktionnullist. (I404b0)
- Die Instanz-ID des Zifferblatts ist jetzt über WatchState.watchFaceInstanceIdverfügbar. Bei den meisten Zifferblättern ist das nicht erforderlich. Wenn es jedoch einen Zustand pro Zifferblatt gibt, der nicht im Schema gespeichert ist, ist dies der Schlüssel, mit dem die Zifferblattinstanz identifiziert wird. Sie können jetzt beim Anrufen vonWatchFaceControlClient.createHeadlessWatchFaceClienteine ID angeben, um uns dabei zu helfen. (I1ff98)
- DefaultComplicationDataSourcePolicywurde erweitert, um die Standard-- ComplicationTypesfür den primären, sekundären Anbieter und den Fallback-Systemanbieter festlegen zu können.- ComplicationSlot.defaultDataSourceTypeist jetzt eingestellt. (If0ce3)
- ComplicationSlot.configExtrasist jetzt veränderbar und kann vor dem Aufrufen von- EditorSession.openComplicationDataSourceChooser()aktualisiert werden. (I6f852)
- WatchFace.setComplicationDeniedDialogIntentund- setComplicationRationaleDialogIntentwurden hinzugefügt. Diese Intents werden gestartet, um vor dem Anfordern von Berechtigungen für Zusatzfunktionen einen Dialog mit einer Begründung anzuzeigen. Wenn Berechtigungen abgelehnt wurden, wird beim Versuch, eine Zusatzfunktion zu bearbeiten, ein weiterer Dialog angezeigt, in dem erklärt wird, dass eine Berechtigung für die Zusatzfunktion erforderlich ist. Die Auswahl des Anbieters wird nicht geöffnet, daher ist der Dialog erforderlich. (I3a29c)
- UserStyleSchemaund- ComplicationSlotskönnen jetzt in XML definiert werden. Das vereinfacht die Erstellung von Zifferblättern und beschleunigt- WatchFaceMetadataClient-Abfragen, da sie nicht an den Dienst gebunden werden müssen, um die Metadaten abzurufen. (I85bfa)
- InteractiveWatchFaceClient.supportsPendingIntentForTouchEventwurde hinzugefügt, damit ein Client feststellen kann, ob ein Zifferblatt- getPendingIntentForTouchEventunterstützt. (I0b917)
- WatchFaceMetadataClientund- ListenableWatchFaceMetadataClientsind keine experimentellen Funktionen mehr. Sie können damit effizient Zifferblattmetadaten abrufen, nach Möglichkeit 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 Bildschirmschonermodus ist. Dazu muss der Anbieter ein neues androidx.wear.watchface.complications.data.source.SYNCHRONOUS_UPDATE_PERIOD_SECONDS-Metadaten-Tag in sein Manifest aufnehmen undonSynchronousComplicationRequestüberschreiben. Je nach Art der Datenquelle müssen möglicherweise auchonStartSynchronousComplicationRequestsundonStopInteractiveComplicationRequestsüberschrieben werden, um Benachrichtigungen zu erhalten, wenn die Zusatzfunktion in den interaktiven Modus wechselt und wieder herauskommt. (I8fe9d)
Version 1.0
Version 1.0.1
9. Februar 2022
androidx.wear.watchface:watchface-*:1.0.1 wird veröffentlicht. Version 1.0.1 enthält diese Commits.
Fehlerkorrekturen
- Fehler behoben, bei dem die „tapAction“-Funktion von PhotoImageComplicationDatanicht richtig verarbeitet wurde (I1cc30)
Version 1.0.0
1. Dezember 2021
androidx.wear.watchface:watchface-*:1.0.0 wird veröffentlicht. Version 1.0.0 enthält diese Commits.
Wichtige Funktionen von 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 das Anpassen des Zifferblatts durch Nutzer (z. B. zum Ändern der Farbpalette, des Stils der Zeiger oder des Aussehens der Stundenmarkierungen) (siehe androidx.wear.watchface.style). Mit androidx.wear.watchface.editor ist es jetzt viel einfacher, einen Editor für das Zifferblatt zu entwickeln. Ihr Zifferblatt kann dann über die System-Companion-App bearbeitet werden, ohne dass Sie zusätzlichen Code schreiben müssen.
- Best Practices sind bereits integriert. Die Bibliothek generiert automatisch Screenreader-Inhaltslabels für Zusatzfunktionen (Sie können auch eigene hinzufügen). Außerdem wird die Framerate automatisch gesenkt, wenn der Akkustand niedrig ist und nicht geladen wird, um die Akkulaufzeit zu verlängern.
- Für die Entwicklung eines Zifferblatts ist weniger Code erforderlich, insbesondere für Zusatzfunktionen, bei denen ein Großteil des Boilerplates in die Bibliothek verschoben wurde.
Fehlerkorrekturen
- Fehler bei EditorSession.userStyle.compareAndSetbeheben (I6f676)
- Behebung sehr kurzer Verzögerungen bei Zifferblättern Iffb97
- InteractiveWatchFaceImpl.onDestroyim UI-Thread zuweisen (I83340)
- Mehrere Probleme mit Broadcastempfängern behoben (I7d25f)
Version 1.0.0-rc01
3. November 2021
androidx.wear.watchface:watchface-*:1.0.0-rc01 wird veröffentlicht. Version 1.0.0-rc01 enthält diese Commits.
Fehlerkorrekturen
- Fehlerbehebung bei dump(), das von adb shell dumpsys aufgerufen wird und durch Ablaufmigrationen beschädigt wurde. (087cf9e) 
- Achten Sie auf die richtige Reihenfolge von writeDirectBootPrefs. writeDirectBootPrefs sollte immer nach initStyleAndComplications ausgeführt werden, da sonst die Initialisierung des UI-Threads verzögert wird.(37650ac) 
- Renderer.onDestroy muss aufgerufen werden. Wenn der Renderer erstellt wurde, die WF-Initialisierung aber noch nicht abgeschlossen ist und Engine.onDestroy aufgerufen wird, müssen wir Renderer.onDestroy aufrufen. (f9952dc) 
- Optimierung/Fehlerbehebung bei „isBatteryLowAndNotCharging“ Mit diesem Patch wird die Ersteinrichtung von „isBatteryLowAndNotCharging“ vorverlegt, sodass sie parallel zu „createWatchFace“ erfolgen kann. Außerdem wird jetzt ACTION_POWER_DISCONNECTED überwacht. (ddffd80 
- InteractiveWatchFaceClientImpl.isConnectionAlive muss nach dem Schließen auf „false“ gesetzt werden (ab9774e) 
Version 1.0.0-beta01
27. Oktober 2021
androidx.wear.watchface:watchface-*:1.0.0-beta01 wird 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 wird 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 keine vorherige Alphaversion vonwear:watchface:watchface-complications-dataeinschließen können, da Sie Fehlermeldungen zu doppelten Klassen erhalten. (I97195)
- Renderer.dump wurde in Renderer.onDump umbenannt und mit @UiThread annotiert. (I44845)
- InteractiveWatchFaceClient.addWatchFaceReadyListenerwurde in- addOnWatchFaceReadyListenerund- removeWatchFaceReadyListenerin- removeOnWatchFaceReadyListenerumbenannt. (I48fea)
- EditorSession getComplicationsPreviewDataundgetComplicationsDataSourceInfosind keine Sperrfunktionen mehr, sondernStateFlow<>-Properties, deren Wert anfangs null ist. In ListenableEditorSession wurdengetListenableComplicationPreviewDataundgetListenableComplicationsProviderInfozugunsten der neuenStateFlow<>-Objekte aus der Basisklasse entfernt. Wenn Sie Änderungen am Java-Code beobachten möchten, können 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 wird 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 so 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 androidx.wear-Bibliotheken für Zifferblätter und Zusatzfunktionen in die Bibliotheksgruppeandroidx.wear.watchface. (b25f3c0)
- „EditorRequest.canWatchFaceSupportHeadlessEditing“ wurde hinzugefügt, um einem Client mitzuteilen, ob ein Zifferblatt-Editor die headless-Bearbeitung unterstützt. Hinweis: Es kann zu einigen Falschnegativ-Ergebnissen kommen, 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)
- Der Renderer hat jetzt eine dump()-Methode, die überschrieben werden kann, um den vom ABD-Shell-Dumpsys-Aktivitätsdienst „WatchFaceService“ generierten Informationen benutzerdefinierte Daten hinzuzufügen. (95235f9)
- Bei InteractiveWatchFaceClient.addWatchFaceReadyListener wird jetzt zuerst der Executor angegeben. (563ac2f)
- StateFlowCompatHelper wurde entfernt. Stattdessen sollte asLiveData (androidx.lifecycle.asLiveData) verwendet werden. (bd35d3)
- CurrentUserStyleRepository.userStyle ist nicht mehr veränderbar. (I44889)
- „WatchFaceReadyListener“ wurde in „OnWatchFaceReadyListener“ umbenannt. (Ic12a9)
Fehlerkorrekturen
- InteractiveInstanceManager.deleteInstance, um onDestroy aufzurufen. Dies ist erforderlich, damit InteractiveWatchFaceImpl vom Garbage Collector erfasst wird.(fce4af8, b/199485839)
