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 wirStatefulWatchFaceServicehinzugefügt, in dem ein voncreateExtra()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 miteglChooseConfigausprobiert werden sollen.
API-Änderungen
StatefulWatchFaceServiceunterstützt jetzt eine Überschreibung vongetComplicationSlotInflationFactory, in die das voncreateExtra()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 miteglChooseConfigausprobiert 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ähneltRangedValueComplicationData, bezieht sich aber auf den Fortschritt bei der Erreichung eines Ziels, wobei „min“ implizit „0“ ist und der Wert größer alstargetValuesein 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 optionalColorRanges. 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.SmallImageswird jetzt von fast allenComplicationData-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 inStateStorehinzufü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 inStateStoreumbenannt. (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 inLargeCustomValueUserStyleSettingsumbenannt. (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 zumComplicationRequest#isForSafeWatchFacedefiniert wurde. Der Anbieter benötigt die Berechtigungcom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE, um andere Daten alsTargetWatchFaceSafety.UNKNOWNzu empfangen.Ab Android T ist auch
CustomValueUserStyleSetting2verfügbar, das bis zu 12,5 KB aufnehmen kann. Bisher war das Limit fürCustomValueUserStyleSetting1 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 eineComplicationSlotsUserStyleSettingin einer Hierarchie zu haben. Je nach Stilauswahl des Nutzers ist nur eineComplicationSlotsUserStyleSettingaktiv.Wir verbessern die Screenreader-Unterstützung für
ListOptionundComplicationSlotsOptiondurch das Hinzufügen einesscreenReaderName-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 vonRangedValueComplicationDatagezogen und inTYPE_UNDEFINED,TYPE_RATINGumbenannt. Außerdem wurde ein neuesTYPE_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ähneltRangedValueComplicationData, aber sein Wert darf über das Ziel hinausgehen. BeiRangedValueComplicationDataist 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 optionalColorRamps.- 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,WeightedElementsComplicationDataundColorRampsind keine experimentellen Versionen mehr. (Ica9e2)ComplicationPersistencePolicyundComplicationDisplayPolicysind 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, darootUserStyleSettingsnicht 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 habenRenderer.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 allenComplicationData-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 experimentellenDiscreteRangedValueComplicationData,GoalProgressComplicationDataundWeightedElementsComplicationData) unterstützen jetzt alleSmallImages. Wenn auf einem Zifferblatt eine Zusatzfunktion in mehreren Farben gerendert werden soll, kann jetzt ein mehrfarbigesSmallImageverwendet werden. Bisher war nur ein einfarbiges Bild möglich. (I257df)PreviewImageUpdateRequestedListenerin eineConsumer<>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 inDisconnectReason.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 invalueTypegeändert. Dies ist ein Ganzzahltyp 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
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 wurdependingInitialComplicationszu früh angewendet. Das bedeutet, dass während der Initialisierung des Zifferblatts noch einige Zeit verstrich, in der Zusatzfunktionen aufpendingInitialComplicationsangewendet und dann ignoriert wurden. Dieses Problem wurde inzwischen behoben. Außerdem behebt dieser Patch einen Fehler, bei demComplicationRendererfä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 mehrerependingInitialComplicationszusammengeführt werden müssen. (0d03ba3)Behebung eines potenziellen Deadlocks in
InteractiveInstanceManager, bei demgetExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstanceden Sperrmechanismus 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 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 dieWatchFaceServicebeibehalten. Durch Hinzufügen einesrelease()-Aufrufs lässt sich das Problem beheben. Außerdem kannStateFlowsWatchFaceServicebeibehalten, wodurch das zugrunde liegendeCoroutineScopesaufgehoben wird.(fd48138)Fügen Sie
awaitDeferredWatchFace* Zeitüberschreitungen hinzu und korrigieren SiewatchfaceOverlayStyleNullPointerException. Unter normalen Umständen sollte es nicht zu einem Zeitüberschreitungsfehler kommen, auch nicht nach einer Neuinstallation und inDirectBoot-Szenarien, in denen die CPU stark ausgelastet ist. Außerdem wurde ein Null-Pointer-Ausnahmefall behoben, der auftrat, wenngetWatchfaceOverlayStylenachclose()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:
UserStyleSchemaundComplicationSlotskö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 teilweiseComplicationSlotBoundsgesendet 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.CanvasRendererundRenderer.GlesRendererwurden zugunsten vonRenderer.CanvasRenderer2undRenderer.GlesRenderer2eingestellt. Diese unterstützenSharedAssets, das an die Rendermethoden übergeben wird. Für die Java-Interoperabilität haben wirListenableCanvasRenderer2undListenableGlesRenderer2eingeführt. (I31ffa)@WatchFaceFlavorsExperimentalkann jetzt Varianten definieren – vorkonfigurierte Liste mit stilisierten Zifferblättern (I04dd0)Renderer.sharedAssetsist jetzt ein StateFlow und die nicht verwendeteRenderer.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_SUPPORTEDinMETADATA_KEY_DATA_SOURCE_DEFAULT_CONFIG_SUPPORTEDumbenannt (I9ba5d)UserStyleSetting.OnWatchEditorDatawurde inUserStyleSetting.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 mitWatchState.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 stattdessenComplicationRequest.immediateResponseRequiredhinzugefügt, um anzuzeigen, 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 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.getUserStyleSchemaundgetComplicationSlotMetadataMapgeben jetztWatchFaceExceptionstattRemoteExceptionzurück. (I86f11)onSynchronousComplicationRequestund zugehörige Funktionen inComplicationDataSourceServicewurden inonImmediateComplicationRequestumbenannt 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 wiederRemoteExceptions, 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
UserStyleSchemaundComplicationSlotskönnen jetzt in XML definiert werden. Das vereinfacht die Erstellung von Zifferblättern. Außerdem sindWatchFaceMetadataClient-Abfragen schneller, da sie nicht an den Dienst gebunden werden müssen, um die Metadaten abzurufen.WatchFaceMetadataClientundListenableWatchFaceMetadataClientsind 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 überWatchState.watchFaceInstanceIdverfügbar.ComplicationDatawird jetzt im Cache gespeichert, damit Komplikationen sofort nach dem Laden angezeigt werden können. Manchmal wirdComplicationDatavom 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 gibtComplicationData.tapActionLostDueToSerializationtruezurü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 aktualisierteComplicationDatamit einertapAction.Einige
ComplicationDatasollten nicht lange im Cache gespeichert werden. Daher haben wir eine allgemeinere FunktionComplicationDataTimelinehinzugefügt. So können Sie eine Sequenz von zeitverzögertenComplicationDatabereitstellen, 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 MethodeonComplicationDataTimelineerweitert, mit der Sie diese Daten zurückgeben können.DefaultComplicationDataSourcePolicywurde erweitert, sodass Sie dieComplicationTypefü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 intapActionLostDueToSerializationgeä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 zuwear-complication-data-sourcehinzugefügt. So können Sie eine Sequenz von zeitverzögertenComplicationDatabereitstellen, 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 MethodeonComplicationDataTimelineerweitert, mit der Sie diese Daten zurückgeben können. Es gibt einen neuen Kotlin-WrapperSuspendingTimelineComplicationDataSourceServicezum Pausieren von Datenquellendiensten. (Idecdc)PendingIntentTapListenerundWatchFaceControlClient.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 vonEditorSession.openComplicationDataSourceChooser()aktualisiert werden. (I6f852)WatchFace.setComplicationDeniedDialogIntentundsetComplicationRationaleDialogIntentwurden 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)UserStyleSchemaundComplicationSlotskönnen jetzt in XML definiert werden. Das vereinfacht die Erstellung von Zifferblättern und beschleunigtWatchFaceMetadataClient-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 ZifferblattgetPendingIntentForTouchEventunterstützt. (I0b917)WatchFaceMetadataClientundListenableWatchFaceMetadataClientsind 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 inaddOnWatchFaceReadyListenerundremoveWatchFaceReadyListenerinremoveOnWatchFaceReadyListenerumbenannt. (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)