Wear-Zifferblatt
Hinweis : Das Watch Face-Format ist ab dem 10. Juli 2024 für die Installation von Zifferblättern auf Geräten mit vorinstalliertem Wear OS 5 und ab dem 27. Januar 2025 für alle neuen bei Google Play veröffentlichten Zifferblätter erforderlich.
Weitere Informationen zu den Änderungen für Nutzer finden Sie in diesem Hilfeartikel.
Letzte Aktualisierung | Stabile Version | Release Candidate | Beta-Ausgabe | Alphaversion |
---|---|---|---|---|
18. September 2024 | 1.2.1 | - | - | 1.3.0-alpha04 |
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 einem vorhandenen Problem 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-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
UserStyleSettings
undUserStyleOptions
hinzugefü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.setUpdateScreenshotOnConfigurationChange
Diese 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#setOverrideComplications
hinzugefügt, mit dem dieComplicationData
der 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
selectComplicationDataForInstant
für alle Zeitachsen vontoApiComplicationData
aufgerufen, was bedeutete, dass der nachfolgende Test der Referenzgleichheit immer fehlschlug. Das bedeutete, dass die Zusatzfunktionen bei jedem Frame neu geladen wurden, was zu einem schnelleren Akkuverbrauch führte. (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
selectedData
zu vergleichen, da der Gleichheitsoperator teuer ist. (446b00)
API-Änderungen
- Wir haben eine dynamische API ohne Fallback für
GoalProgressComplicationData
hinzugefü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
WatchFaceServices
können gleichzeitig initialisiert werden und sollten daher ohne Status sein. Zu diesem Zweck haben wirStatefulWatchFaceService
hinzugefügt, in dem ein voncreateExtra()
erstelltes benutzerdefiniertes Extra an alle Overrides übergeben wird, die während der Initialisierung aufgerufen werden.GlesRenderer2
hat jetzt eine Konstruktorüberladung, mit der Sie eine Liste von Attributen angeben können, die nacheinander miteglChooseConfig
ausprobiert werden sollen.
API-Änderungen
StatefulWatchFaceService
unterstü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
createUserStyleSchema
erstellt wurden, mit den anderen Initialisierungsmethoden geteilt werden. Da es keine bessere Alternative gab, haben Entwickler ihreWatchFaceServices
in 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 wirStatefulWatchFaceService
undStatefulWatchFaceRuntimeService
eingeführt. Dabei wird ein benutzerdefinierter Typ voncreateExtra()
erstellt und als Parameter an die verschiedenen Create-Methoden übergeben. (If8a99) - Wir haben
getUserStyleFlavors
zuInteractiveWatchFaceClient
hinzugefügt, was vor allem für OEMs von Interesse ist. (I0f5d8) GlesRenderer2
hat jetzt eine Konstruktorüberladung, mit der Sie eine Liste von Attributen angeben können, die nacheinander miteglChooseConfig
ausprobiert 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 Wear OS die Unterstützung für
SystemDataSources.DATA_SOURCE_HEART_RATE
hinzugefügt. Diese Zusatzfunktion unterstützt nurSHORT_TEXT
-Zusatzfunktionen. Es wird jedoch empfohlen, dass dieComplicationSlot
auchSMALL_IMAGE
unterstützt, da OEMs anstelle des Livewerts einen Verknüpfung zu ihrer Gesundheits-App anzeigen können. (I34223) - Wir haben
METADATA_KEY_CONFIG_RESTORE_SUPPORTED
hinzugefügt, mit dem ab Android U festgelegt wird, was passiert, wenn das System aus einer Sicherung für die Zusatzfunktionen-Datenquelle mitMETADATA_KEY_DATA_SOURCE_CONFIG_ACTION
wiederhergestellt 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_ACTION
auf „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 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 alstargetValue
sein 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.
RangedValueComplicationData
unterstützt jetzt optionalColorRanges
. Normalerweise werden Zusatzfunktionen in den Farben des Zifferblatts gerendert. Manchmal ist es jedoch am besten, die Farben über dieComplicationDataSource
festzulegen, z. B. wenn sie eine bestimmte semantische Bedeutung haben. Beispiel: Rot nach Blau für die Temperatur.SmallImages
wird jetzt von fast allenComplicationData
-Typen unterstützt.- Wir haben
ComplicationDisplayPolicy
hinzugefügt, woDO_NOT_SHOW_WHEN_DEVICE_LOCKED
ein 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#isForSafeWatchFace
definiert wurde. Der Anbieter benötigt die Berechtigungcom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
, um etwas anderes als „TargetWatchFaceSafety.UNKNOWN“ zu erhalten. UserStyleFlavors
ist 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#onDestroy
ist 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
WatchFaceRuntimeService
undWatchFaceControlClient.createWatchFaceRuntimeControlClient
sowie 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
,TapType
oderComplicationsSlotBoundsType
abhä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 inTapTypes
undComplicationsSlotBoundsType
-Konstanten inComplicationsSlotBoundsType
bereit. (I3b85a, b/288750666) WatchFace.OverlayStyle
wird nur sehr selten verwendet und wird von OEMs nicht gut unterstützt. Daher wird die Unterstützung fürWatchFace.OverlayStyle
eingestellt und die Funktion wird zu einem späteren Zeitpunkt entfernt. (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.Builder
wird jetztDynamicFloat
akzeptiert und als Unterklasse vonComplicationText
ist eine neueDynamicComplicationText
verfü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
StateEntryValue
inDynamicDataValue
um und aktualisiere die Status-APIs, damit sieDynamicDataKey
verwenden. (If1c01) AppDataKey
zum Zugriff auf den von der App gesendeten Status hinzufügen;PlatformDataKey
zum Zugriff auf Plattformdaten hinzufügen; Namespaceunterstützung inStateStore
hinzufügen (I7985e)- Die
enable
/disablePlatformSource
-Methoden wurden ausDynamicTypeEvaluator
entfernt. 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_FACE
androidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPES
-Metadaten registrieren, dieandroid.support.wearable.complications.SUPPORTED_TYPES
fü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) - Name des Wertparameters für
Enum.valueOf
geändert (Ia9b89) - Mehr geworfene Ausnahmen von enum valueOf (I818fe)
- Wir haben
renderWatchFaceToSurface
zugunsten voncreateRemoteWatchFaceView
entfernt.createRemoteWatchFaceView
basiert auf SurfaceControlViewHost und ermöglicht es dem Aufrufer, eine Ansicht aus dem Zifferblatt einzubetten, die gerendert wird, wenn der ClientRemoteWatchFaceViewHost#renderWatchFace
aufruft. (Ib311d) - Wir haben
renderWatchFaceToSurface
zuInteractiveWatchFaceClient
,HeadlessWatchFaceClient
undEditorSession
hinzugefügt. Das ist in der Regel leistungsfähiger als das Rendern in eine Bitmap. (Ieacad) ObservableStateStore
wurde inStateStore
umbenannt. (Ieb0e2)- Anstelle von Konstruktorargumenten wurde
DynamicTypeEvaluator.Builder
hinzugefügt, um mehr optionale Argumente zuzulassen, darunterObservableStateStore
, das jetzt standardmäßig auf einen leeren Store verweist. (I6f832) - Die Reihenfolge der Parameter in
DynamicTypeEvaluator
wurde ü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_FACE
könnenandroidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPES
-Metadaten registrieren, dieandroid.support.wearable.complications.SUPPORTED_TYPES
für sichere Zifferblätter überschreiben. (Id1c73) CustomValueUserStyleSettings2
wurde inLargeCustomValueUserStyleSettings
umbenannt. (Ic17ac)
Fehlerkorrekturen
DynamicTypeValueReceiver#onPreUpdate
wurde 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#isForSafeWatchFace
definiert wurde. Der Anbieter benötigt die Berechtigungcom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
, um andere Daten alsTargetWatchFaceSafety.UNKNOWN
zu empfangen.Ab Android T ist auch
CustomValueUserStyleSetting2
verfügbar, das bis zu 12,5 KB aufnehmen kann. Bisher war das Limit fürCustomValueUserStyleSetting
1 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
GlesRenderer
undGlesRenderer2
den optionalen ParametereglContextAttribList
hinzugefügt, mit dem Sie den anEGL14.eglCreateContext
übergebenenEGL14.EGL_CONTEXT_CLIENT_VERSION
festlegen können. (I2a83e) - Die Zifferblatt-Bibliotheken wurden von
java.util.function.Consumer
zuandroidx.core.util.Consumer
migriert. (I273f5) - Mehr geworfene Ausnahmen von KT-Property-Accessors (Iff9d9)
- Wir haben
InteractiveWatchFaceClient.isComplicationDisplayPolicySupported
hinzugefü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
isForSafeWatchFace
ein Drei-Status-IntDef
sein soll. (Ief2f7) - Für Android T haben wir
ComplicationRequest.isForSafeWatchFace
eingeführt, das für die Verwendung durch OEMs vorgesehen ist undcom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
erfordert. 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
CustomValueUserStyleSetting2
hinzugefügt, das bis zu 12,5 KB aufnehmen kann. Bisher war das Limit fürCustomValueUserStyleSetting
1 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 GOAL_PROGRESS und WEIGHTED_ELEMENTS 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
UserStyleSettings
hinzugefügt. Seit Android T ist es nun möglich, mehr als eineComplicationSlotsUserStyleSetting
in einer Hierarchie zu haben. Je nach Stilauswahl des Nutzers ist nur eineComplicationSlotsUserStyleSetting
aktiv.Wir verbessern die Screenreader-Unterstützung für
ListOption
undComplicationSlotsOption
durch das Hinzufügen einesscreenReaderName
-Felds. Hinweis: Vor Android T wird dieses Feld von Companion-Editoren ignoriert.
API-Änderungen
- Wir haben
ListOption
undComplicationSlotsOption
ein neues optionales FeldscreenReaderName
hinzugefügt, das von Mitbearbeitern verwendet werden kann. Auf Geräten mit einer älteren Android-Version wird es von Mitbearbeitern ignoriert. (I75326) - Ab Android T werden in einer Stilhierarchie jetzt mehrere
ComplicationSlotsUserStyleSettings
unterstützt, solange jeweils nur eine davon aktiv sein kann. Wir habenUserStyleSchema
die DienstprogrammfunktionfindComplicationSlotsOptionForUserStyle
hinzugefügt, mit der Sie die aktiveComplicationSlotsOption
(falls vorhanden) finden können. (Ic2b06) RangedValuesTypes
wurden in das zugehörige Objekt vonRangedValueComplicationData
gezogen und inTYPE_UNDEFINED
,TYPE_RATING
umbenannt. Außerdem wurde ein neuesTYPE_PERCENTAGE
hinzugefügt. (I55d02)- Die experimentelle Funktion
DynamicFloat
wurde inFloatExpression
umbenannt und als@hide
gekennzeichnet. (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:
GoalProgressComplicationData
undWeightedElementsComplicationData
. GoalProgressComplicationData
ähneltRangedValueComplicationData
, aber sein Wert darf über das Ziel hinausgehen. BeiRangedValueComplicationData
ist der Wert auf den Bereich [min .. max] begrenzt. Das hat Auswirkungen auf das visuelle Design, die möglicherweise nicht für alle Zifferblätter geeignet sind.GoalProgressComplicationData
unterstützt jetzt auch Kreisdiagramme und ähnliche Aufschlüsselungen einfacher Daten.RangedValueComplicationData
unterstützt jetzt optionalColorRamps
.- Für Android T haben wir
ComplicationPersistencePolicy
undsetCachePolicy
zuComplicationData
hinzugefügt. Damit kann ein Anbieter derzeit festlegen, ob eine Zusatzfunktion beibehalten wird (d. h., ob sie nach einem 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 wirComplicationDisplayPolicy
hinzugefügt, wobeiDO_NOT_SHOW_WHEN_DEVICE_LOCKED
ein kompatibles Zifferblatt anweist, die Zusatzfunktion nicht anzuzeigen, wenn das Gerät gesperrt ist. (Ic9574)
API-Änderungen
GoalProgressComplicationData
,WeightedElementsComplicationData
undColorRamp
sind keine experimentellen Versionen mehr. (Ica9e2)ComplicationPersistencePolicy
undComplicationDisplayPolicy
sind 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
,ComplicationTapFilter
undInteractiveWatchFaceClient
behoben, indem wir sie mit@JvmDefaultWithCompatibility
(Id94fc) annotiert haben. - Die experimentellen
ProtoLayoutComplicationData
undListComplicationData
wurden entfernt. Die Entwicklergeschichte für diese war unklar. Wir hoffen, sie in Zukunft noch einmal zu besprechen. (I9df05) - Wir haben
ValueType
wieder zuRangedValueComplicationData
hinzugefügt.WeightedElementsComplicationData
unterstützt jetzt eine Hintergrundfarbe. Wir habenDiscreteRangedValueComplicationData
entfernt, da seine Funktionen Teil vonWeightedElementsComplicationData
sind. (I6446c)
Fehlerkorrekturen
- Fügen Sie das
isForScreenShot
in den Gleichheitszeichen- und Hash-Code ein. Achten Sie darauf, dassonRenderParametersChanged
den korrekten WertisForScreenshot
erhält (I04a41). - Lecks von
WatchFaceControlService
von 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.userStyleSettings
wurde eingestellt, darootUserStyleSettings
nicht mehr experimentell ist (Ie96e3)rootUserStyleSettings
aus der Testphase entfernen (I8d6b3)- Wir haben
WatchFaceColors
als experimentell gekennzeichnet, da es nicht von allen Systemen unterstützt wird (I6d75d). - Machen Sie
DisconnectReasons
in der öffentlichen API verfügbar, damit sie mitIntDef
funktioniert. (I791f8)
Fehlerkorrekturen
- Schließen Sie alle geöffneten Editoren, wenn
SysUI
dies tut. WennSysUI
nicht 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 überSysUI
speichert.(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.sendPreviewImageNeedsUpdateRequest
hinzugefü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.
SmallImages
wird 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 undClientDisconnectListener
um eine neue Methode mit einerDisconnectReason
erweitert, damit der Listener die Entsperrung des Motors beobachten kann. (I45cce) - Dem Konstruktor von
ComplicationSlotOverlay
wurden zwei optionale ParameternameResourceId
undscreenReaderResourceId
hinzugefügt (I157e8) - Wir haben einen Guava-Wrapper für die neue Überladung von
getOrCreateInteractiveWatchFaceClient
mit einemPreviewImageUpdateRequestedListener
hinzugefügt. (Ic31f0) - Wir haben
Renderer.sendPreviewImageNeedsUpdateRequest
hinzugefügt. Dieser Status ist nützlich für Zifferblätter, die einen Status außerhalb vonUserStyleSchema
haben, der sich auf ihr Aussehen auswirkt (z. B. ein Zifferblatt mit einem auswählbaren Hintergrundbild). Auf der Clientseite haben wirPreviewImageUpdateRequestedListener
als optionalen Parameter zugetOrCreateInteractiveWatchFaceClient
hinzugefügt, um diese Anfragen zu beobachten. (Iff44a) - Wir haben die API für die Freigabe von
WatchFaceColors
vereinfacht. Es gibt jetzt eine einfache Eigenschaft namenswatchFaceColors
im Renderer, die vom Zifferblatt festgelegt werden kann. Diese sollte bei Stiländerungen nach Bedarf aktualisiert werden. StattWallpaperManager
für Farbänderungen zu verwenden, haben wirOnWatchFaceColorsListener
zuInteractiveWatchFaceClient
hinzugefügt. (I490bc) - Wir haben die Klasse
WatchFaceColors
hinzugefügt, die die drei wichtigsten Zifferblattfarben enthält, und dem Renderer die offenen MethodenwatchfaceColors
undnotifyWatchFaceColorsChanged
hinzugefügt. So kann das System die Farben des Zifferblatts überWallpaperManager.getWallpaperColors
abrufen. (I3d611) ShortTextComplicationData
,RangedValueComplicationData
,NoPermissionComplicationData
(und die experimentellenDiscreteRangedValueComplicationData
,GoalProgressComplicationData
undWeightedElementsComplicationData
) unterstützen jetzt alleSmallImages
. Wenn auf einem Zifferblatt eine Zusatzfunktion in mehreren Farben gerendert werden soll, kann jetzt ein mehrfarbigesSmallImage
verwendet werden. Bisher war nur ein einfarbiges Bild möglich. (I257df)PreviewImageUpdateRequestedListener
in eineConsumer<>
umwandeln (Ia875d)- Benutzerdefinierten SAM-Typ (Single Abstract Method, einzelne abstrakte Methode)
OnWatchfaceColorsListener
durch generischen Java-SAM-Typ (Consumer) ersetzen (I0c489) - Die alten
getOrCreateInteractiveWatchFaceClient
- undlistenableGetOrCreateInteractiveWatchFaceClient
-Methoden, für die keinePreviewImageUpdateRequestedListener
angegeben wird, wurden eingestellt. (Iec502)
Fehlerkorrekturen
DisconnectReason.BINDER_DIED
wurde inDisconnectReason.ENGINE_DIED
umbenannt. (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
ComplciationSlots
keine 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.getComplicationSlotInflationFactory
das ArgumentcurrentUserStyleRepository
hinzugefügt, um sie mitcreateComplicationSlotsManager
in Einklang zu bringen. (I2ddd2) UserStyleFlavors
sind keine experimentellen Funktionen mehr. (I69cdc)- Wir haben die experimentelle
ValueType
ausRangedValueComplicationData
entfernt und stattdessen die experimentelleDiscreteRangedValueComplicationData
eingeführt. Diese entsprichtRangedValueComplicationData
mit Ausnahme des Ganzzahlbereichs und des Ganzzahlwerts. Außerdem haben wir die experimentelle FunktionGoalProgressComplicationData
eingeführt. Sie ähneltRangedValueComplicationData
, bezieht sich aber auf den Fortschritt bei einem Zielvorhaben, wobei der Mindestwert implizit null ist und der Wert größer alstargetValue
sein darf. Hinweis: Für alleRangedValue
-Varianten muss mindestens eine der folgenden Optionen angegeben werden: „monochromeImage“, „text“ oder „title“. (I9590c) - Wir haben
boundsWithMargins
ausComplicationSlotState
entfernt, da es für Systemsoftware keinen Anwendungsfall gibt. (I42e26) - Wir haben experimentelle Unterstützung für
WeightedElementsComplicationData
hinzugefü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 vonRangedValueComplicationData
undGoalProgressComplicationData
verwendet 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.drawSegmented
wurde invalueType
geändert. Dies ist ein Ganzzahltyp mit einer entsprechendenValueType IntDef
, die dem Bereichswert eine semantische Bedeutung verleiht und vom Komplikations-Renderer verwendet werden kann, um das Styling zu beeinflussen. (I0616b)- Wir haben
RangedValueComplicationData
die experimentelle Unterstützung für optionaleColorRanges
hinzugefügt. Normalerweise werden Zusatzfunktionen in den Farben des Zifferblatts gerendert. Manchmal ist es jedoch am besten, die Farben über dieComplicationDataSource
festzulegen, z. B. wenn sie eine bestimmte semantische Bedeutung haben. Beispiel: Rot nach Blau für die Temperatur. (I5153a) - Wir haben
RangedValueComplicationData
einen experimentellendrawSegmented
-Hinweis hinzugefügt. Dies signalisiert Renderern, den Bereichsindikator mit Segmenten zu zeichnen, wobei 1 Segment = 1 Einheit entspricht. (I7d7c1)
Fehlerkorrekturen
- Sie können
ComplicationSlotBounds
jetzt 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
pendingInitialComplications
aufgenommen und später angewendet. Leider wurdependingInitialComplications
zu früh angewendet. Das bedeutet, dass während der Initialisierung des Zifferblatts noch einige Zeit vergangen ist, in der Zusatzfunktionen aufpendingInitialComplications
angewendet und ignoriert wurden. Dieses Problem wurde inzwischen behoben. Außerdem behebt dieser Patch einen Fehler, bei demComplicationRenderer
fä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 mehrerependingInitialComplications
zusammengeführt werden müssen. (0d03ba3)Behebung eines potenziellen Deadlocks in
InteractiveInstanceManager
, bei demgetExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstance
den Sperrmechanismus länger als nötig gehalten hat. Normalerweise sollteengine.setUserStyle
schnell 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
WatchFaceService
beibehalten wurde Der WakeLock kann manchmal dieWatchFaceService
beibehalten. Durch Hinzufügen einesrelease()
-Aufrufs lässt sich das Problem beheben. Außerdem kannStateFlows
WatchFaceService
beibehalten, wodurch das zugrunde liegendeCoroutineScopes
aufgehoben wird.(fd48138)Fügen Sie
awaitDeferredWatchFace
* Zeitüberschreitungen hinzu und korrigieren SiewatchfaceOverlayStyle
NullPointerException
. 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-Objekt-Pointer behoben, der auftrat, wenngetWatchfaceOverlayStyle
nachclose()
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
ComplicationSlots
visuell 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 sie 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
ComplicationType
für die primäre und sekundäre Datenquelle angeben, was Entwicklern mehr Flexibilität bei der sofort einsatzbereiten Nutzung bietet. - Wir haben
ComplicationDataTimeline
hinzugefü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
ComponentName
des Zusatzanbieters ist Teil derComplicationData
. - Zusatzfunktionen werden jetzt im Cache gespeichert, was den Wechsel zwischen Zifferblättern erleichtert.
Weitere Änderungen:
UserStyleSchema
undComplicationSlots
kö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
ComplicationSlotBounds
und unterstützende Referenzen jetzt einfacher angeben lassen. Die Tests mit der Zusatzfunktion „Ränder“BoundingArc
werden fortgesetzt und die Funktion wird bisdrawHighlight
weitergeleitet. Die Verwendung wird derzeit jedoch nicht empfohlen.
API-Änderungen
- Wir haben eine experimentelle Überladung von
drawHighlight
hinzugefü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
ComplicationSlotBounds
jetzt in Form voncenter_x
,center_y
,size_x
undsize_y
definieren. 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.close
synchron. Das Problem bei der asynchronen Ausführung vonBaseEditorSession.close
ist, dass wir dieComplicationDataSourceInfoRetriever
zu 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
BoundingArc
hinzugefügt, eine experimentelle Klasse, die die Geometrie eines Zusatzbereichs an der Seite beschreibt. Dieser wurdeComplicationSlot
hinzugefügt und anComplicationSlotState
undWatchFaceMetadataClient
angeschlossen. (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 verwenden. (Ief841) - Wir haben zwei neue experimentelle Typen von
ComplicationData
hinzugefügt:ListComplicationData
undProtoLayoutComplicationData
. Derzeit gibt es keine Renderingunterstützung für diese beiden Typen und WearOS erkennt sie nicht, wenn sie einemComplicationDataSource's
-Manifest hinzugefügt werden. (I1811c)
Fehlerkorrekturen
- Fehler bei der Serialisierung des Typs
TimeLineEntry
behoben Der TypTimeLineEntry
wurde nicht serialisiert. Das bedeutete, dass im Cache gespeicherteTimeLineEntries
vom 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
setComplicationData
Zeitachsenfelder gelöscht wurden(fb392f5) - Ein Fehler wurde behoben, durch den
runBlockingWithTracing
sehr selten zu einem Null-Pointer-Fehler führte(12ca62e). - Es wurde ein Fehler behoben, durch den manchmal
ClassNotFoundException: android.support.wearable.complications.ComplicationText
angezeigt wurde, wenn eine Zusatzfunktion empfangen wurde.(217942d9) - Ein Fehler in
GlesRenderer.backgroundThreadInitInternal
wurde behoben, bei demonBackgroundThreadGlContextCreated
nur aufgerufen wurde, wennEGL14.eglCreateContext
aufgerufen wurde. Ein weiterer Fehler wurde behoben, bei dem ein visueller Fehler im Screenshot durchverticalFlip
verursacht wurde.(c674ad2) - Korrektur der
WatchFaceService
-XML-Versionsprüfung, da die Daten aus dem falschen Paket geladen wurden (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.getUserStyleFlavors
eine nicht geprüfte RuntimeException anstelle vonWatchFaceException
. (I0718a) WatchFaceMetadataClient.WatchFaceException
wurde aus der Klasse entfernt, damit es wiederverwendet werden kann. (I4e869)
Fehlerkorrekturen
WatchFaceMetadataClient
stürzt nicht mehr ab, wenn teilweiseComplicationSlotBounds
gesendet 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.dataSource
sehen, welche Datenquelle eineComplicationData
gesendet hat. Einige Zifferblätter können diese Informationen verwenden, um die Anzeige von Zusatzfunktionen anzupassen. (I44a73)
API-Änderungen
Renderer.CanvasRenderer
undRenderer.GlesRenderer
wurden zugunsten vonRenderer.CanvasRenderer2
undRenderer.GlesRenderer2
eingestellt. Diese unterstützenSharedAssets
, das an die Rendermethoden übergeben wird. Für die Java-Interoperabilität haben wirListenableCanvasRenderer2
undListenableGlesRenderer2
eingeführt. (I31ffa)@WatchFaceFlavorsExperimental
kann jetzt Varianten definieren – vorkonfigurierte Liste mit stilisierten Zifferblättern (I04dd0)Renderer.sharedAssets
ist jetzt ein StateFlow und wir haben die nicht verwendeteRenderer.SharedAssetsFactory
(I12ac5) entfernt.UserStyleSchema.userStyleSettings
ist nicht mehr eingestellt (Iba7e3)- Wir haben
HeadlessWatchFaceClient.getUserStyleSchemaDigestHash
hinzugefügt, mit dem einHeadlessWatchFaceClient
den relativ geringen Overhead vermeiden kann, der durch das Übergeben des Schemas über AIDL vor dem Berechnen des Hashwerts entsteht. (I33597) - Wir haben
isUserStyleSchemaStatic
zuWatchFaceMetadataClient
hinzugefügt. Dieser Wert ist nur dann „wahr“, wenn sichUserStyleSchema
nur dann ändert, wenn das Zifferblatt-APK aktualisiert wird. (I45a3f) - Wir haben
getDigestHash
zuUserStyleSchema
hinzugefügt, wodurch ein Hashwert für das Schema berechnet wird. So lässt sich effizient feststellen, ob sichUserStyleSchema
geändert hat. (I2063d) METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIGURATION_SUPPORTED
inMETADATA_KEY_DATA_SOURCE_DEFAULT_CONFIG_SUPPORTED
umbenannt (I9ba5d)UserStyleSetting.OnWatchEditorData
wurde inUserStyleSetting.WatchFaceEditorData
umbenannt. 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 wirNoDataComplication
um einen optionalen Platzhalter für Zusatzdaten erweitert undComplicationText.PLACEHOLDER
,MonochromaticImage.PLACEHOLDER
,SmallImage.PLACEHOLDER
undPhotoImage.PLACEHOLDER
hinzugefügt, die nur im Kontext einesNoDataComplicationData
-Platzhalters verwendet werden dürfen. Wenn diese Option ausgewählt ist, werden diese Platzhalter mit grauen Rechtecken/Bogen gerendert. (I6285d) - Wir haben
ComplicationData.getNextChangeInstant
hinzugefü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.watchFaceId
kann jetzt auf allen API-Ebenen verwendet werden. Außerdem stimmt der Wert jetzt immer mitWatchState.watchFaceInstanceId
überein. (I323b9)- Die
getPendingIntentForTouchEvent
API 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, damitPendingIntents
ausgelöst wird, auch wenn die Startbildschirmtaste vor Kurzem gedrückt wurde. (I1f2e8) - Wir haben
RendererParameters.isForScreenShot
hinzugefü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
WatchFaceExceptionReason
zuWatchFaceException
hinzugefügt, um Ihnen einen besseren Überblick über das Problem zu geben. (I01d15) ComplicationDataSourceService.onImmediateComplicationRequest
wurde entfernt und stattdessenComplicationRequest.immediateResponseRequired
hinzugefü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_UPDATE
geschü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.Option
die neue Property „childSettings“ hinzugefügt, die anfangs nur vonListOption
verwendet 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.OverlayStyle
hinzugefügt, mit dem das Zifferblatt das Rendern des Systemstatus-Overlays konfigurieren kann. (I8520d) - Wir haben
clearWithBackgroundTintBeforeRenderingHighlightLayer
als neuen optionalen Konstruktorparameter fürCanvasRenderer
eingefü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_SUPPORTED
wurde 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.SharedAssets
eingeführt. Damit kann ein Zifferblatt-Renderer unveränderliche Daten (z. B. Texturen und Shader) zwischen Instanzen teilen.GlesRenderer.setEglConfig
undGlesRenderer.setEglDisplay
sind nicht mehr unterstützt. Sie sollten nicht festgelegt werden, da dies zu undefiniertem Verhalten führen würde. (I0d9e7) - Wir haben
ComplicationSlot.Builder
die VariablensetNameResourceId
undsetScreenReaderNameResourceId
hinzugefü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.getUserStyleSchema
undgetComplicationSlotMetadataMap
geben jetztWatchFaceException
stattRemoteException
zurück. (I86f11)onSynchronousComplicationRequest
und zugehörige Funktionen inComplicationDataSourceService
wurden inonImmediateComplicationRequest
umbenannt 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
OnWatchEditorData
hinzugefügt, das derzeit nur ein Symbol enthält. (If1886) - Wir haben dem Konstruktor von ListenableGlesRenderer die Variable
@JvmOverloads
hinzugefügt, um die Java-Interoperabilität zu verbessern. (I2974a)
Fehlerkorrekturen
- Der Konstruktor von
ListenableGlesRenderer
ist 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
PhotoImageComplicationData
nicht 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
ComplicationData
und 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)ComplicationData
und 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
UserStyleSchema
undComplicationSlots
kö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.WatchFaceMetadataClient
undListenableWatchFaceMetadataClient
sind 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
UserStyle
erfasst wird. Um diesen und mehrere Instanzen zu unterstützen, ist die Instanz-ID des Zifferblatts jetzt überWatchState.watchFaceInstanceId
verfügbar.ComplicationData
wird jetzt im Cache gespeichert, damit Komplikationen sofort nach dem Laden angezeigt werden können. Manchmal wirdComplicationData
vom System im Arbeitsspeicher im Cache gespeichert und manchmal von den Zifferblattbibliotheken serialisiert. Wenn die Komplikationen bei der Serialisierung nicht gespeichert werden, wirdComplicationData.tapActionLostDueToSerialization
true
zurückgegeben. Das Zifferblatt sollte die Zusatzfunktion dann anders darstellen (z. B. ausgegraut oder halbtransparent), um anzuzeigen, dass sie nicht angetippt werden kann. Das System sendet so schnell wie möglich eine aktualisierteComplicationData
mit einertapAction
.Einige
ComplicationData
sollten nicht lange im Cache gespeichert werden. Dazu haben wir eine allgemeinere FunktionComplicationDataTimeline
hinzugefügt. So können Sie eine Sequenz von zeitverzögertenComplicationData
bereitstellen, die an das Zifferblatt gesendet und automatisch im Cache gespeichert und aktualisiert werden. Beispielsweise die Wettervorhersage für heute zu verschiedenen Zeiten oder mehrere anstehende Kalendertermine.ComplicationRequestListener
wurde um die neue MethodeonComplicationDataTimeline
erweitert, mit der Sie diese Daten zurückgeben können.DefaultComplicationDataSourcePolicy
wurde erweitert, sodass Sie dieComplicationType
fü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 denen die Zusatzfunktion häufiger als normal aktualisiert wird, 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 ist aufgrund von Speicherproblemen möglicherweise eingeschränkt.
Die Änderungen an
PendingIntentTapListener
werden 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.isCached
wurde intapActionLostDueToSerialization
geändert. Dieser Wert ist hilfreicher, um zu bestimmen, ob der Zusatzbereich anders dargestellt werden soll, um anzuzeigen, dass er nicht angetippt werden kann. (I6de2f)ComplicationDataTimeline
wurde zuwear-complication-data-source
hinzugefügt. So können Sie eine Sequenz von zeitgesteuertenComplicationData
bereitstellen, die an das Zifferblatt gesendet und automatisch im Cache gespeichert und aktualisiert werden. Beispielsweise die Wettervorhersage für heute zu verschiedenen Zeiten oder mehrere anstehende Kalendertermine.ComplicationRequestListener
wurde um die neue MethodeonComplicationDataTimeline
erweitert, mit der Sie diese Daten zurückgeben können. Es gibt einen neuen Kotlin-WrapperSuspendingTimelineComplicationDataSourceService
zum Anhalten von Datenquellendiensten. (Idecdc)PendingIntentTapListener
undWatchFaceControlClient.getPendingIntentForTouchEvent
wurden 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
ComplicationData
-Caches pro Zifferblatt. 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.hasComplicationCache
für OEMs. Dies kann sich auf die Strategie des Systems für das Senden von Zusatzfunktionen an ein Zifferblatt auswirken. Außerdem hatComplicationData
eineisCached
-Eigenschaft. Es wird empfohlen, zwischengespeicherte Zusatzfunktionen anders zu rendern, da dietapAction
nicht zwischengespeichert werden kann und in einer zwischengespeicherten Zusatzfunktionnull
ist. (I404b0) - Die Instanz-ID des Zifferblatts ist jetzt über
WatchState.watchFaceInstanceId
verfü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.createHeadlessWatchFaceClient
eine ID angeben, um uns dabei zu helfen. (I1ff98) DefaultComplicationDataSourcePolicy
wurde erweitert, um die Standard-ComplicationTypes
für den primären, sekundären Anbieter und den Fallback-Systemanbieter festlegen zu können.ComplicationSlot.defaultDataSourceType
ist jetzt eingestellt. (If0ce3)ComplicationSlot.configExtras
ist jetzt veränderbar und kann vor dem Aufruf vonEditorSession.openComplicationDataSourceChooser()
aktualisiert werden. (I6f852)WatchFace.setComplicationDeniedDialogIntent
undsetComplicationRationaleDialogIntent
wurden 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)UserStyleSchema
undComplicationSlots
kö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.supportsPendingIntentForTouchEvent
wurde hinzugefügt, damit ein Client feststellen kann, ob ein ZifferblattgetPendingIntentForTouchEvent
unterstützt. (I0b917)WatchFaceMetadataClient
undListenableWatchFaceMetadataClient
sind 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 Modus „Im Hintergrund“ 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 auchonStartSynchronousComplicationRequests
undonStopInteractiveComplicationRequests
ü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
PhotoImageComplicationData
nicht 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 von Zifferblättern (z. B. die Farbpalette, den Stil der Zeiger oder das Aussehen der Stundenmarkierungen) (siehe
androidx.wear.watchface.style
). Mit androidx.wear.watchface.editor ist es jetzt viel einfacher, einen Editor für Zifferblätter zu entwickeln. Ihr Zifferblatt kann ü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.compareAndSet
beheben (I6f676) - Behebung sehr kurzer Verzögerungen bei Zifferblättern Iffb97
InteractiveWatchFaceImpl.onDestroy
im 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. Wir möchten, dass „writeDirectBootPrefs“ immer nach „initStyleAndComplications“ ausgeführt wird, da sonst die Initialisierung des UI-Threads verzögert werden kann.(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.complications
wurden in ein neueswear:watchface:watchface-complications
-Projekt verschoben. Das bedeutet, dass Sie diese Bibliothek und keine vorherige Alphaversion vonwear:watchface:watchface-complications-data
einschließen können, da Sie Fehlermeldungen zu doppelten Klassen erhalten. (I97195) - Renderer.dump wurde in Renderer.onDump umbenannt und mit @UiThread annotiert. (I44845)
InteractiveWatchFaceClient.addWatchFaceReadyListener
wurde inaddOnWatchFaceReadyListener
undremoveWatchFaceReadyListener
inremoveOnWatchFaceReadyListener
umbenannt. (I48fea)- EditorSession
getComplicationsPreviewData
undgetComplicationsDataSourceInfo
sind keine Sperrfunktionen mehr, sondernStateFlow<>
-Properties, deren Wert anfangs null ist. In ListenableEditorSession wurdengetListenableComplicationPreviewData
undgetListenableComplicationsProviderInfo
zugunsten der neuenStateFlow<>
-Objekte aus der Basisklasse entfernt. Wenn Sie Änderungen am Java-Code beobachten möchten, können Sieandroidx.lifecycle.FlowLiveDataConversions.asLiveData
verwenden, 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 Smartwatch-Bibliothek 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)