Zifferblatt tragen
Hinweis : Seit dem 10. Juli 2024 müssen Zifferblätter die Methode Zifferblattformat, damit Ihre die auf neuen Smartwatches installiert sind, auf denen Wear OS 5 vorinstalliert war. Weitere Informationen zu den nutzungsorientierten Änderungen in diesem Hilfe
Außerdem ab Anfang 2025 (genaues Datum wird im Q4 2024) müssen alle neuen Zifferblätter, die bei Google Play veröffentlicht werden, das Zifferblatt verwenden. Formatieren.
Letzte Aktualisierung | Stabile Version | Releasekandidat | Beta-Ausgabe | Alpha-Release |
---|---|---|---|---|
17. April 2024 | 1.2.1 | - | - | 1.3.0-alpha03 |
Abhängigkeiten deklarieren
Um eine Wear-Abhängigkeit hinzuzufügen, musst du das Maven-Repository von Google zu deinem Projekt arbeiten. Maven-Repository von Google lesen .
Fügen Sie der Datei build.gradle
die Abhängigkeiten für die Artefakte hinzu, die Sie benötigen
Ihre App oder Ihr Modul:
Cool
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
Dein Feedback hilft uns, Jetpack zu verbessern. Teilen Sie uns mit, wenn Sie neue Ausgaben entdecken oder zur Verbesserung dieser Bibliothek. In der bestehende Probleme in dieser Bibliothek, bevor Sie eine neue erstellen. So können Sie für ein vorhandenes Problem abstimmen: indem Sie auf die Sternschaltfläche klicken.
Weitere Informationen finden Sie in der Dokumentation zur Problemverfolgung. .
Version 1.3
Version 1.3.0-alpha03
17. April 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha03
wurde veröffentlicht. Version 1.3.0-alpha03 enthält diese Commits.
API-Änderungen
- Wir haben
EditorSession#setOverrideComplications
hinzugefügt. Damit wird dieComplicationData
der zugrunde liegenden Zifferblattinstanz während der Bearbeitung vorübergehend festgelegt. Wenn sich Zusatzfunktionen nur selten ändern, ist dies effizienter, als Überschreibungen überEditorSession#renderWatchFaceToBitmap
zu übergeben. (I19384)
Fehlerkorrekturen
- Bisher hat
selectComplicationDataForInstant
toApiComplicationData
für alle Zeiträume aufgerufen, sodass der nachfolgende === Referenzgleichheitstest immer fehlschlägt. Dadurch wurden Komplikationen in jedem Frame neu geladen, was zu einer Entladung des Akkus führte. (717406)
Version 1.3.0-alpha02
3. April 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha02
wurde veröffentlicht. Version 1.3.0-alpha02 enthält diese Commits.
Neue Funktionen
- Wir verwenden jetzt die Referenzgleichheit für den Vergleich der besten und
selectedData
, da der Gleichheitsoperator teuer ist. (446b00)
API-Änderungen
- Für
GoalProgressComplicationData
wurde eine dynamische API ohne Fallback hinzugefügt. (c33264)
Version 1.3.0-alpha01
7. Februar 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha01
wurde veröffentlicht. Version 1.3.0-alpha01 enthält diese Commits.
Neue Funktionen
WatchFaceServices
können gleichzeitig initialisiert werden und sollten daher zustandslos sein. Um dies zu unterstützen, haben wirStatefulWatchFaceService
hinzugefügt. Dabei wird ein benutzerdefiniertes Extra, das voncreateExtra()
erstellt wurde, an alle Überschreibungen übergeben, die während der Initialisierung aufgerufen werden.GlesRenderer2
hat jetzt eine Konstruktor-Überlastung, mit der Sie eine Liste von Attributen angeben können, die Sie nacheinander miteglChooseConfig
testen können.
API-Änderungen
StatefulWatchFaceService
unterstützt jetzt eine Überschreibung vongetComplicationSlotInflationFactory
, in die das benutzerdefinierte Extra, das voncreateExtra()
erstellt wurde, übergeben wird. (I82d9f)- Bei einigen Zifferblättern müssen die im
createUserStyleSchema
erstellten Zusatzdaten für die anderen Initialisierungsmethoden freigegeben werden. Da es keine bessere Alternative gab, haben Entwickler ihreWatchFaceServices
in der Regel zustandsorientiert gemacht. Dies ist gefährlich, da mehrere Instanzen gleichzeitig erstellt werden können, was zu Fehlern führen kann. Zur Lösung dieses Problems haben wirStatefulWatchFaceService
undStatefulWatchFaceRuntimeService
eingeführt. Dabei wird ein benutzerdefinierter Typ voncreateExtra()
erstellt und als Parameter an die verschiedenen Erstellungsmethoden übergeben. (If8a99) - Wir haben
getUserStyleFlavors
zuInteractiveWatchFaceClient
hinzugefügt, was vor allem für OEMs von Interesse ist. (I0f5d8) GlesRenderer2
hat jetzt eine Konstruktor-Überlastung, mit der Sie eine Liste von Attributen angeben können, die Sie nacheinander miteglChooseConfig
testen können. So können Sie beispielsweise zuerst eine Konfiguration mit Kantenglättung ausprobieren und bei Bedarf auf eine Konfiguration ohne Kantenglättung zurückgreifen. (I1ba74)- Ab Android U wird Wear OS auch
SystemDataSources.DATA_SOURCE_HEART_RATE
unterstützt. Diese Zusatzfunktion unterstützt garantiert nur dieSHORT_TEXT
-Zusatzfunktionen. Es wird jedoch empfohlen, dassComplicationSlot
auchSMALL_IMAGE
akzeptiert, da OEMs möglicherweise eine Verknüpfung zu ihrer Gesundheits-App anstelle des Live-Werts bereitstellen. (I34223) - Wir haben
METADATA_KEY_CONFIG_RESTORE_SUPPORTED
hinzugefügt. Ab Android U wird festgelegt, was passiert, wenn das System mitMETADATA_KEY_DATA_SOURCE_CONFIG_ACTION
aus einer Datenquelle für Zusatzfunktionen wiederhergestellt wird. Standardmäßig geht das System davon aus, dass der Datenquellendienst für die Zusatzfunktion die Sicherung jeglicher Konfigurationsdaten unterstützt. Wenn dies nicht der Fall ist, kann die MetadateneinstellungMETADATA_KEY_DATA_SOURCE_CONFIG_ACTION
auf „false“ gesetzt werden. Dadurch wird der Slot für die Zusatzfunktion als nicht konfiguriert markiert. (I6c505)
Version 1.2
Version 1.2.1
24. Januar 2024
androidx.wear.watchface:watchface-*:1.2.1
wurde veröffentlicht. Version 1.2.1 enthält diese Commits.
Fehlerkorrekturen
- Absturz auf der Samsung Galaxy Watch 4, 5 und 6. (43f0b0)
Version 1.2.0
29. November 2023
androidx.wear.watchface:watchface-*:1.2.0
wurde 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 zur Verfügung stehen:
<ph type="x-smartling-placeholder">
- </ph>
GoalProgressComplicationData
ist ähnlich wieRangedValueComplicationData
, mit dem Unterschied, dass es den Fortschritt in Richtung eines Ziels betrifft, bei dem der min. implizit null ist und der Wert größer alstargetValue
sein darf.WeightedElementsComplicationData
, das aus einem Array von Elementen (Gewichts- und Farbpaare) mit optionalem Text/Titel/Bild besteht. Diese können als Kreisdiagramm dargestellt werden, in dem die Farben in Anbetracht des Kontexts aussagekräftig sein müssen, da für die Darstellung von Beschriftungen meist keine Zusatzfunktion vorhanden ist.
- Wir haben Unterstützung für optionale
ColorRanges
zuRangedValueComplicationData
hinzugefügt. Normalerweise werden Zusatzfunktionen in den Farben gerendert, die das Zifferblatt ausgewählt hat, aber manchmal istComplicationDataSource
am besten geeignet, um die Farben festzulegen, z.B. wenn sie eine bestimmte semantische Bedeutung haben. Beispiel: von Rot zu Blau für die Temperatur. SmallImages
wird jetzt auf fast allenComplicationData
-Typen unterstützt.- Wir haben
ComplicationDisplayPolicy
hinzugefügt.DO_NOT_SHOW_WHEN_DEVICE_LOCKED
weist ein kompatibles Zifferblatt an, die Zusatzfunktion nicht anzuzeigen, wenn das Gerät gesperrt ist. - Ab Android T können OEMs feststellen, ob eine Zusatzfunktion von einem Zifferblatt aus der Liste stammt, die in den
android.support.wearable.complications.SAFE_WATCH_FACES
-Metadaten im Manifest ihres Anbieters vonComplicationRequest#isForSafeWatchFace
definiert ist. Der Anbieter benötigt die Berechtigung „com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
“, um andere Daten als „TargetWatchFaceSafety.UNKNOWN“ zu empfangen. UserStyleFlavors
ist keine experimentelle Funktion.
Version 1.2.0-rc01
18. Oktober 2023
androidx.wear.watchface:watchface-*:1.2.0-rc01
wurde 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
wurde veröffentlicht. Version 1.2.0-beta02 enthält diese Commits.
Neue Funktionen
SuspendingComplicationDataSourceService#onDestroy
ist jetzt geöffnet. Bitte beachten Sie, dass die Unterstützung für eine standardmäßige Zusatzfunktion für das Wetter nicht mehr verfügbar ist.
API-Änderungen
- „Neue Datenquelle für Wetterkomplikationen verfügbar machen“ rückgängig machen. (I6f335)
Version 1.2.0-beta01
23. August 2023
androidx.wear.watchface:watchface-*:1.2.0-beta01
wurde veröffentlicht. Version 1.2.0-beta01 enthält diese Commits.
Neue Funktionen
- Ab Android T unterstützt Wear OS jetzt eine standardmäßige Zusatzfunktion des Wettersystems.
API-Änderungen
- Standardsystem-Fallback für das Wetter für Zusatzfunktionen hinzufügen. (Ia0994)
- Dieser Patch fügt
WatchFaceRuntimeService
undWatchFaceControlClient.createWatchFaceRuntimeControlClient
zusammen mit Guava-Wrappern hinzu. Diese bieten Unterstützung für Zifferblattlaufzeiten – eine spezielle Art von Zifferblatt, bei dem die Definition aus einem anderen Paket geladen wird. Derzeit unterstützt WearOS nur die Laufzeit für das Android Watch Face-Format. (I2799f) - Dieser Patch ist eine Folge von aosp/2636578, in der wir die Ganzzahl-Defs umbenennen, sodass jeder Code, der von
WatchFaceType
,CanvasType
,TapType
oderComplicationsSlotBoundsType
abhängig ist, nicht geändert werden muss. (I4098b) - API-Dateien wurden aktualisiert, um eine unterdrückte Kompatibilität mit Anmerkungen zu versehen. (I8e87a, b/287516207)
- Dieser Patch enthält die
WatchFaceType
-Konstanten inWatchFaceTypes
, dieCanvasType
-Konstanten inCanvasTypes
, dieTapType
-Konstanten inTapTypes
und dieComplicationsSlotBoundsType
-Konstanten inComplicationsSlotBoundsType
. (I3b85a, b/288750666) WatchFace.OverlayStyle
wird nur sehr selten genutzt und wird von den OEMs nicht gut unterstützt. Daher haben wir es eingestellt, um es zu einem späteren Zeitpunkt zu entfernen. (I7344a)
Version 1.2.0-alpha09
21. Juni 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha09
wurde veröffentlicht. Version 1.2.0-alpha09 enthält diese Commits.
Neue Funktionen
RangedValueComplicationData.Builder
akzeptiert jetztDynamicFloat
und eine neueDynamicComplicationText
ist als abgeleitete Klasse vonComplicationText
verfügbar. Beide können dynamische Ausdrücke und Plattformbindungen verwenden, die auf unterstützten Wear 4-Geräten mit 1 Hz aktualisiert werden.
API-Änderungen
- Es wurden dynamische Typen für die tägliche Strecke, die täglichen Kalorien und die täglichen Etagen hinzugefügt. Schlüssel für Plattformintegritätsquellen sind jetzt unter
PlatformHealthSources.Keys
(Ib7637) - Implementiere
PlatformDataProvider
, um die Herzfrequenz und die täglichen Schritte anzugeben. Die SchnittstelleSensorGateway
wurde aus der öffentlichen API entfernt. (I55b84) - Benennen Sie
StateEntryValue
inDynamicDataValue
um und aktualisieren Sie die Status-APIs, um dieDynamicDataKey
zu verwenden. (If1c01) - Fügen Sie
AppDataKey
für den Zugriff auf den Push-Zustand der App hinzu.PlatformDataKey
für den Zugriff auf Plattformdaten hinzufügen Namespace-Unterstützung inStateStore
hinzufügen. (I7985e) enable
/disablePlatformSource
Methoden wurden ausDynamicTypeEvaluator
entfernt. Der Aufrufer sollte für Aktualisierungen verantwortlich sein. (I78c6d)- Größenbeschränkung der gebundenen Datentypen zulassen. (Ie2966)
Version 1.2.0-alpha08
19. April 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha08
wurde veröffentlicht. Version 1.2.0-alpha08 enthält diese Commits.
Neue Funktionen
- Ab Android T können Anbieter von Zusatzfunktionen mit den privilegierten
com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
-Metadatenandroidx.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 möglicherweise unterschiedliche Typen für vertrauenswürdige und nicht vertrauenswürdige Zifferblätter bereitstellt.
API-Änderungen
- Weitergabe der Klasse
@Deprecated
an Property (I882d1, b/271441831) - Name des Wertparameters für
Enum.valueOf
geändert (Ia9b89) - Weitere ausgelöste Ausnahmen von enum valueOf (I818fe)
- Wir haben
renderWatchFaceToSurface
zugunsten voncreateRemoteWatchFaceView
entfernt, das auf SurfaceControlViewHost basiert und es dem Aufrufer ermöglicht, eine Ansicht aus dem Zifferblatt einzubetten, das gerendert wird, wenn der ClientRemoteWatchFaceViewHost#renderWatchFace
aufruft. (Ib311d) - Wir haben
renderWatchFaceToSurface
zuInteractiveWatchFaceClient
,HeadlessWatchFaceClient
undEditorSession
hinzugefügt. Dies ist in der Regel leistungsfähiger als das Rendern auf einer Bitmap. (Ieacad) ObservableStateStore
wurde inStateStore
umbenannt. (Ieb0e2)DynamicTypeEvaluator.Builder
anstelle von Konstruktorargumenten hinzugefügt, um mehr optionale Argumente zu ermöglichen, einschließlichObservableStateStore
, das jetzt standardmäßig einen leeren Speicher enthält. (I6f832)- Refaktorierte Reihenfolge der Parameter in
DynamicTypeEvaluator
. (Ic1ba4) - Der Executor wurde den
DynamicTypeEvaluator.bind
-Methoden hinzugefügt. (I346ab) - Wir haben die Methode
startEvaluation
zuBoundDynamicType
hinzugefügt, um die Bewertung auszulösen, nachdem der dynamische Typ gebunden wurde. (I19908) - Anbieter von Zusatzfunktionen mit der privilegierten 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) - Wir haben
CustomValueUserStyleSettings2
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
wurde veröffentlicht. Version 1.2.0-alpha07 enthält diese Commits.
Neue Funktionen
Ab Android T können OEMs feststellen, ob eine Zusatzfunktion von einem Zifferblatt aus der Liste stammt, die in den
android.support.wearable.complications.SAFE_WATCH_FACES
-Metadaten im Manifest ihres Anbieters vonComplicationRequest#isForSafeWatchFace
definiert ist. Der Anbieter benötigt die Berechtigung „com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE
“, um andere Informationen alsTargetWatchFaceSafety.UNKNOWN
zu empfangen.Außerdem kann
CustomValueUserStyleSetting2
von Android T verwendet werden.Es bietet Platz für bis zu 12,5 KB. Das vorherige Limit fürCustomValueUserStyleSetting
lag bei 1 KB. Trotz der höheren Größenbeschränkungen wird Entwicklern von Zifferblättern empfohlen, die Daten klein zu halten, da die Einstellungen während der Bearbeitung über Bluetooth gesendet werden und die Bluetooth-Bandbreite begrenzt ist.
API-Änderungen
- Wir haben den optionalen Parameter
eglContextAttribList
zuGlesRenderer
hinzugefügt undGlesRenderer2
, mit dem Sie die anEGL14.eglCreateContext
übergebeneEGL14.EGL_CONTEXT_CLIENT_VERSION
festlegen können. (I2a83e) - Wir haben Zifferblatt-Bibliotheken zu
androidx.core.util.Consumer
statt zujava.util.function.Consumer
migriert. (I273f5) - Mehr ausgelöste Ausnahmen von KT-Property-Zugriffen (Iff9d9)
- Wir haben
InteractiveWatchFaceClient.isComplicationDisplayPolicySupported
hinzugefügt, damit der Kunde feststellen kann, ob die Unterstützung für alte Zifferblätter emuliert werden muss oder nicht. (I24c89) - Wir haben beschlossen, dass
isForSafeWatchFace
einIntDef
mit drei Bundesstaaten sein sollte. (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 Systemimage wird „true“ zurückgegeben, wenn das anfragende Zifferblatt in der Liste der sicheren Zifferblätter enthalten ist, die von der Datenquelle im Manifest angegeben wurden. (I0cbb6) - Für Android T haben wir
CustomValueUserStyleSetting2
hinzugefügt, das Platz für bis zu 12,5 KB bietet. Das vorherige Limit fürCustomValueUserStyleSetting
lag bei 1 KB. (I0b100)
Version 1.2.0-alpha06
25. Januar 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha06
wurde veröffentlicht. Version 1.2.0-alpha06 enthält diese Commits.
Neue Funktionen
- Wir arbeiten daran, die Unterstützung für Plattformbindungen mit Zusatzfunktionen hinzuzufügen. Diese Funktion ist noch nicht einsatzbereit, aber wir halten Sie auf dem Laufenden.
- Wir haben XML
ComplicationSlot
-Unterstützung für die neuen Zusatzfunktionen GOAL_PROGRESS und WEIGHTED_ELEMENTS hinzugefügt.
Fehlerkorrekturen
- Es wurde ein Leck behoben, bei dem der Zifferblatt-Editor auf Samsung-Geräten nicht richtig veröffentlicht wurde. (3b5987)
- Ein Fehler wurde behoben, bei dem Zusatzfunktionen beim Wechsel zwischen einem Zifferblatt mit mehreren Favoriten manchmal nicht richtig angezeigt wurden. (b38ece)
- Behebt einen Serialisierungsfehler mit perOptionScreenReaderNames, der zu Abstürzen des Zifferblatts führt. (e9f466)
Version 1.2.0-alpha05
7. Dezember 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha05
wurde veröffentlicht. Version 1.2.0-alpha05 enthält diese Commits.
Neue Funktionen
Vor einiger Zeit haben wir die Unterstützung für die hierarchische
UserStyleSettings
hinzugefügt, und ab Android T ist es jetzt möglich, mehr als eineComplicationSlotsUserStyleSetting
in einer Hierarchie zu haben. Je nach der Stilauswahl des Nutzers ist nur einComplicationSlotsUserStyleSetting
aktiv.Wir verbessern die Screenreader-Unterstützung für
ListOption
undComplicationSlotsOption
, indem wir einscreenReaderName
-Feld hinzufügen. Hinweis: Vor Android T wird dieses Feld von Companion-Editoren ignoriert.
API-Änderungen
- Wir haben
ListOption
undComplicationSlotsOption
ein neues optionalesscreenReaderName
-Feld hinzugefügt, das von Bearbeitern verwendet werden kann. Es wird von Companion-Editoren auf Geräten vor Android T ignoriert. (I75326) - Von Android T werden jetzt mehrere
ComplicationSlotsUserStyleSettings
in einer Stilhierarchie unterstützt, sofern höchstens eine von ihnen gleichzeitig aktiv sein kann. Wir haben die DienstfunktionfindComplicationSlotsOptionForUserStyle
zuUserStyleSchema
hinzugefügt, um die aktiveComplicationSlotsOption
zu finden, falls vorhanden. (IC2b06) RangedValuesTypes
wurden in das Companion-Objekt vonRangedValueComplicationData
abgerufen und inTYPE_UNDEFINED
,TYPE_RATING
umbenannt und eine neueTYPE_PERCENTAGE
wurde hinzugefügt. (I55d02)- Wir haben die experimentelle Datei
DynamicFloat
inFloatExpression
umbenannt und als@hide
gekennzeichnet. (Idf4f1) - Annotation
@JvmDefaultWithCompatibility
hinzufügen (I8f206)
Version 1.2.0-alpha04
9. November 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha04
wurde veröffentlicht. Version 1.2.0-alpha04 enthält diese Commits.
Neue Funktionen
- Android T unterstützt jetzt zwei neue Zusatzfunktionen:
GoalProgressComplicationData
undWeightedElementsComplicationData
. - „
GoalProgressComplicationData
“ ist ähnlich wie „RangedValueComplicationData
“, aber sein Wert darf den Zielwert überschreiten (beiRangedValueComplicationData
wird er auf den Bereich [min .. max] gebunden). Das hat Auswirkungen auf das visuelle Design, das möglicherweise nicht für alle Zifferblätter passt. GoalProgressComplicationData
unterstützt Kreisdiagramme und ähnliche Aufschlüsselungen einfacher Daten.- Wir haben die optionale Unterstützung für
ColorRamps
zuRangedValueComplicationData
hinzugefügt. - Für Android T haben wir
ComplicationPersistencePolicy
undsetCachePolicy
zuComplicationData
hinzugefügt. Damit können Anbieter derzeit steuern, ob eine Zusatzfunktion beibehalten wird oder nicht (d. h., ob sie nach dem Neustart im Cache gespeichert wird). Für die meisten Komplikationen ist keine Cache-Steuerung erforderlich, aber dadurch werden Grenzfälle mit veralteten Daten für einige Komplikationen behoben, die häufig aktualisiert werden (z.B. Komplikationen bei Gesundheitsdaten). Wir haben außerdemComplicationDisplayPolicy
hinzugefügt.DO_NOT_SHOW_WHEN_DEVICE_LOCKED
weist ein kompatibles Zifferblatt an, die Zusatzfunktion nicht anzuzeigen, wenn das Gerät gesperrt ist. (IC9574)
API-Änderungen
GoalProgressComplicationData
,WeightedElementsComplicationData
undColorRamp
sind nicht mehr experimentell. (Ica9e2)ComplicationPersistencePolicy
undComplicationDisplayPolicy
sind jetzt korrekt als T APIs gekennzeichnet. (I31d88)- Der verworfene
ComplicationSlotOverlay
-Konstruktor verfügt jetzt überDeprecationLevel.WARNING
, sodass er wieder aus Java aufgerufen werden kann. (Ib308c) - Wir haben einige Java-Kompatibilitätsprobleme mit
ComplicationRequestListener
,CanvasComplication
,ComplicationTapFilter
undInteractiveWatchFaceClient
behoben, indem sie mit@JvmDefaultWithCompatibility
(Id94fc) versehen wurden. - Die experimentellen Tools
ProtoLayoutComplicationData
undListComplicationData
wurden entfernt. Der Entwicklerbericht dafür war unklar. Wir hoffen, dass wir ihn in Zukunft noch einmal ansehen werden. (I9df05) - Wir haben ein/e
ValueType
wieder zuRangedValueComplicationData
hinzugefügt.WeightedElementsComplicationData
unterstützt jetzt eine Hintergrundfarbe. Wir habenDiscreteRangedValueComplicationData
entfernt, da ihre Funktionalität ein Teil vonWeightedElementsComplicationData
ist. (I6446c)
Fehlerkorrekturen
- Füge das
isForScreenShot
in den Gleichheits- und Hash-Code ein. FüronRenderParametersChanged
muss ein korrekterisForScreenshot
-Wert verwendet werden (I04a41) WatchFaceControlService
-Sicherheitslücken bei monitorlosen Clients wurden behoben. (e90e00)
Version 1.2.0-alpha03
5. Oktober 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha03
wurde 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
- Eingestellte
UserStyleSchema.userStyleSettings
, darootUserStyleSettings
nicht experimentell ist (Ie96e3) rootUserStyleSettings
aus experimentellen Ressourcen verschieben (I8d6b3)WatchFaceColors
wurde als experimentell gekennzeichnet, weil es nicht von allen Systemen unterstützt wird (I6d75d).- Machen Sie
DisconnectReasons
in der öffentlichen API verfügbar, damit es mitIntDef
funktioniert. (I791f8)
Fehlerkorrekturen
- Schließe alle geöffneten Elemente im Smartwatch-Editor, wenn
SysUI
stirbt. WennSysUI
abstürzt und der Zifferblatt-Editor nicht geschlossen wird, kann das Zifferblatt inkonsistent bleiben, da das System aufSysUI
angewiesen ist, um Änderungen des Nutzerstils beizubehalten (ba762a). - Ein Speicherleck in
ComplicationDataSourceInfoRetriever
wurde behoben, bei dem eine Kotlin-Fortsetzung der Koroutine als GCS-Root fungierte und die Editoraktivität beibehalten konnte.(33ee06)
Version 1.2.0-alpha02
21. September 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha02
wurde veröffentlicht. Version 1.2.0-alpha02 enthält diese Commits.
Neue Funktionen
Einige Zifferblätter haben eine Konfiguration außerhalb von
UserStyle
, die sich optisch darauf auswirkt, z.B. durch die Auswahl eines Hintergrundbilds. Wir habenRenderer.sendPreviewImageNeedsUpdateRequest
hinzugefügt, über das das Zifferblatt ein aktualisiertes Vorschaubild anfordern kann. Beachten Sie, dass hierfür ein entsprechendes System-Update erforderlich ist.Wir haben auch eine API für Zifferblätter hinzugefügt, um ihre Farben dem System zur Verfügung zu stellen, das darauf basierend die Farbpalette auswählen kann. Hinweis: Dies wurde im Rahmen eines Folge-Patches experimentell.
SmallImages
wird jetzt von fast allenComplicationData
-Typen unterstützt.
API-Änderungen
- Der Hintergrundmanager kann sich manchmal von einer Suchmaschine trennen und eine neue erstellen. Wir haben eine
DisconnectReason
int def hinzugefügt undClientDisconnectListener
mit einer neuen Methode erweitert, die eineDisconnectReason
enthält, mit der der Listener die Trennung der Engine beobachten kann. (I45cce) - Dem
ComplicationSlotOverlay
-Konstruktor wurden zwei optionale ParameternameResourceId
undscreenReaderResourceId
hinzugefügt (I157e8). - Wir haben einen Guava-Wrapper für die neue Überlastung von
getOrCreateInteractiveWatchFaceClient
mit einemPreviewImageUpdateRequestedListener
hinzugefügt. (Ic31f0) - Wir haben
Renderer.sendPreviewImageNeedsUpdateRequest
hinzugefügt. Dies ist nützlich für Zifferblätter mit einem Status außerhalb vonUserStyleSchema
, der sich auf ihr Aussehen auswirkt (z. B. ein Zifferblatt mit einem auswählbaren Hintergrundbild). Clientseitig haben wirPreviewImageUpdateRequestedListener
als optionalen Parameter zugetOrCreateInteractiveWatchFaceClient
hinzugefügt, um diese Anfragen zu beobachten. (Iff44a) - Wir haben die API für die Veröffentlichung von
WatchFaceColors
vereinfacht. Es gibt jetzt eine einfache Eigenschaft namenswatchFaceColors
für den Renderer, die vom Zifferblatt festgelegt werden kann. Diese sollte bei Bedarf als Reaktion auf Stiländerungen aktualisiert werden. Statt mitWallpaperManager
Farbänderungen zu erfassen, haben wirOnWatchFaceColorsListener
zuInteractiveWatchFaceClient
hinzugefügt. (I490bc) - Wir haben eine
WatchFaceColors
-Klasse hinzugefügt, die die drei auffälligsten Zifferblattfarben enthält, sowie offene MethodenwatchfaceColors
undnotifyWatchFaceColorsChanged
an den Renderer. Damit kann das System die Farben des Zifferblatts überWallpaperManager.getWallpaperColors
abrufen. (I3d611) ShortTextComplicationData
,RangedValueComplicationData
,NoPermissionComplicationData
(und die experimentellen FunktionenDiscreteRangedValueComplicationData
,GoalProgressComplicationData
undWeightedElementsComplicationData
) unterstützen jetzt alleSmallImages
. Wenn auf einem Zifferblatt eine Zusatzfunktion mit mehreren Farben gerendert wird, kann jetzt ein mehrfarbigesSmallImage
-Element verwendet werden, für das zuvor ein monochromatisches Bild erforderlich gewesen wäre. (I257df)PreviewImageUpdateRequestedListener
inConsumer<>
refaktorieren (Ia875d)- Benutzerdefinierten Typ
OnWatchfaceColorsListener
einer einzelnen abstrakten Methode (SAM) durch generischen Java-SAM-Typ (Nutzer) ersetzen (I0c489) - Die alten Methoden
getOrCreateInteractiveWatchFaceClient
undlistenableGetOrCreateInteractiveWatchFaceClient
, die keinePreviewImageUpdateRequestedListener
angeben, wurden verworfen. (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
wurde veröffentlicht. Version 1.2.0-alpha01 enthält diese Commits.
Neue Funktionen
- Wir haben experimentelle Unterstützung für verschiedene neue Zusatzfunktionen hinzugefügt. Dies ist ein Bereich mit aktiver Entwicklung. Diese neuen Formate können ohne vorherige Ankündigung geändert werden. Derzeit gibt es für
CanvasComplicationDrawable
keine Renderer-Unterstützung. - Außerdem haben wir den Slots für Zusatzfunktionen optionale Ränder hinzugefügt, damit kleine Zusatzfunktionen einfacher anzutippen sind.
API-Änderungen
- Die experimentelle Klasse
BoundingArc
ist jetzt unveränderlich. (If624a) - Kleine Zusatzfunktionen sind manchmal schwer anzutippen. Um dies zu vermeiden, unterstützen wir Ränder, mit denen der antippbare Bereich vergrößert werden kann, ohne das Rendering zu beeinträchtigen. Sofern nicht anders angegeben (entweder im Code oder über XML), haben
ComplciationSlots
Ränder in Nullgröße. (I14089) - Die
getComplicationSlotInflationFactory(CurrentUserStyleRepository)
-Signatur wurde so geändert, dass eine Factory-Instanz ungleich null zurückgegeben wird. Da es zuvor ein Fehler war, null zurückzugeben, wird dadurch der API-Vertrag klarer. (I0fcc0) - Wir haben der Methode
WatchFaceService.getComplicationSlotInflationFactory
das ArgumentcurrentUserStyleRepository
hinzugefügt, um es mitcreateComplicationSlotsManager
zu vereinheitlichen. (I2ddd2) UserStyleFlavors
sind keine experimentelle Funktion. (I69cdc)- Wir haben die experimentelle
ValueType
ausRangedValueComplicationData
entfernt und stattdessen die experimentelleDiscreteRangedValueComplicationData
eingeführt, dieRangedValueComplicationData
mit Ausnahme des Ganzzahlbereichs &entspricht Wert. Außerdem haben wir einen experimentellenGoalProgressComplicationData
eingeführt, derRangedValueComplicationData
ähnelt, mit dem Unterschied, dass es sich um den Fortschritt in Richtung eines Ziels handelt, bei dem der min. implizit null ist und der Wert größer alstargetValue
sein darf. Hinweis: Für alleRangedValue
-Varianten muss mindestens entweder „monochromeImage“, „Text“ oder „Titel“ angegeben werden. (I9590c) - Wir haben
boundsWithMargins
ausComplicationSlotState
entfernt, da es für die Systemsoftware keinen Anwendungsfall gibt. (I42e26) - Wir haben experimentelle Unterstützung für
WeightedElementsComplicationData
hinzugefügt. Diese besteht aus einem Array von Elementen (Paare aus Gewicht und Farbe) sowie optionalem Text/Titel/Bild. Diese können als Kreisdiagramm dargestellt werden, in dem die Farben in Anbetracht des Kontexts aussagekräftig sein müssen, da für die Darstellung von Beschriftungen meist keine Zusatzfunktion vorhanden ist. (I87eea) - Mit der experimentellen
ColorRamps
, die optional vonRangedValueComplicationData
undGoalProgressComplicationData
verwendet werden kann, kannst du jetzt eine Sequenz von bis zu sieben Farben angeben sowie ein Flag angeben, das angibt, ob die Farben problemlos angepasst werden sollen oder ob gleich große Farbstufen gerendert werden sollen. (I9f5bf) RangedValueComplicationData.drawSegmented
wurde zuvalueType
geändert. Das ist eine Ganzzahl mit einer entsprechendenValueType IntDef
, die dem Bereichswert semantische Bedeutung verleiht und vom Zusatzfunktions-Renderer zum Beeinflussen des Stils verwendet wird. (I0616b)- Wir haben experimentelle Unterstützung für die optionale
ColorRanges
zuRangedValueComplicationData
hinzugefügt. Normalerweise werden Zusatzfunktionen in den Farben gerendert, die das Zifferblatt ausgewählt hat, aber manchmal istComplicationDataSource
am besten geeignet, um die Farben festzulegen, z.B. wenn sie eine bestimmte semantische Bedeutung haben. Beispiel: von Rot zu Blau für die Temperatur. (I5153a) - Wir haben
RangedValueComplicationData
einen experimentellendrawSegmented
-Hinweis hinzugefügt. Damit weisen Sie Renderer an, den Bereichswertindikator mit Segmenten zu zeichnen, wobei 1 Segment 1 Einheit entspricht. (I7d7c1)
Fehlerkorrekturen
- Es wurde die Möglichkeit hinzugefügt,
ComplicationSlotBounds
relativ zu einem vordefinierten Bildschirmkoordinatensystem zu definieren. (I0985d)
Version 1.1
Version 1.1.1
10. August 2022
androidx.wear.watchface:watchface-*:1.1.1
wurde veröffentlicht. Version 1.1.1 enthält diese Commits.
- Dies ist eine Version zur Fehlerkorrektur. Nutzern der Version 1.1.0 wird dringend empfohlen, ein Upgrade durchzuführen.
Fehlerkorrekturen
Die Initialisierung des Zifferblatts erfolgt asynchron. Wenn eine Zusatzfunktion eingeht, bevor das Zifferblatt bereit ist, wird es in die
pendingInitialComplications
-Liste aufgenommen und später angewendet.pendingInitialComplications
wurde zu früh angewendet. Das bedeutete, dass es bei der Initialisierung des Zifferblatts ein Zeitfenster gab, in dem Komplikationen weiterhin inpendingInitialComplications
platziert und ignoriert wurden. Dieses Problem wurde inzwischen behoben. Außerdem wird mit diesem Patch ein Fehler behoben, bei demComplicationRenderer
fälschlicherweise versucht hat, Platzhalter asynchron zu laden, was dazu führte, dass die Kompilierungsgrafik nie aktualisiert wurde. Schließlich wird mit diesem Patch ein hoffentlich theoretischer Fehler behoben, bei dem mehrerependingInitialComplications
zusammengeführt werden müssen. (0d03ba3)Ein potenzielles Deadlock in
InteractiveInstanceManager
wurde behoben, bei demgetExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstance
das Schloss länger als nötig hielt. Normalerweise sollten wir erwarten, dassengine.setUserStyle
schnell ist, aber wenn dies aus irgendeinem Grund nicht der Fall ist, kann es zu einem Deadlock/ANR-Fehler kommen. Durch diesen Patch werden unnötige Arbeiten aus dem Schloss entfernt, wodurch die Gefahr eines Deadlocks eliminiert wird.(5a2adca)Behebe mehrere Probleme, die
WatchFaceService
beibehalten haben. WakeLock kannWatchFaceService
manchmal beibehalten. Durch Hinzufügen einesrelease()
-Aufrufs wird dieses Problem behoben. Außerdem kannStateFlows
WatchFaceService
beibehalten, wodurch dies durch Abbrechen der zugrunde liegendenCoroutineScopes
behoben wird.(fd48138)Fügen Sie
awaitDeferredWatchFace
* Zeitüberschreitungen hinzu und korrigieren SiewatchfaceOverlayStyle
NullPointerException
. Unter normalen Umständen sollte hier keine Zeitüberschreitung auftreten, z. B. nach einer Neuinstallation undDirectBoot
-Szenarien, in denen die CPU-Auslastung hoch ist. Außerdem wurde eine NPE korrigiert, wenngetWatchfaceOverlayStyle
nachclose()
aufgerufen wird.(a4c3a5a)
Version 1.1.0
15. Juni 2022
androidx.wear.watchface:watchface-*:1.1.0
wurde veröffentlicht. Version 1.1.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.0.0
Verbesserte Bearbeitungsfunktionen:
- Wir haben Unterstützung für hierarchische Schemas hinzugefügt, wodurch eine Hierarchie von Stilen von Editor-Benutzeroberflächen geschrieben werden kann. Du kannst jetzt separate Symbole für die Verwendung in Zifferblatt- und Companion-Editoren angeben.
- Es gibt die Opt-in-Unterstützung für mehrere Instanzen eines Zifferblatts. Jede Instanz hat eine eindeutige ID, die auf allen API-Oberflächen verfügbar ist.
- Sie können jetzt menschenlesbare Namen für
ComplicationSlots
zur Verwendung in Editoren angeben. - Experimentelle Unterstützung für Stile von „Geschmacksrichtungen“, eine ausgewählte Auswahl von Stilen, die im Companion-Editor sichtbar ist.
- Beim Laden von zwei Instanzen des Zifferblatts können jetzt Ressourcen gemeinsam genutzt werden, wodurch Arbeitsspeicher gespart wird.
- Wenn Sie im Zifferblatt-Editor eine Zusatzfunktion auswählen, wird jetzt der aktuelle Anbieter vorausgewählt.
Verbesserte Zusatzfunktionen:
- Sie können jetzt die
ComplicationType
für die primäre und sekundäre Datenquelle angeben, um Entwicklern mehr Flexibilität bei der Bereitstellung zu bieten. - Wir haben
ComplicationDataTimeline
hinzugefügt. Damit wird eine Sequenz zeitgesteuerter Daten an das Zifferblatt gesendet, die automatisch im Cache gespeichert und aktualisiert werden können. Zum Beispiel die heutige Wettervorhersage zu verschiedenen Zeiten oder mehrere anstehende Kalenderereignisse. - Die
ComponentName
des Anbieters für Zusatzfunktionen ist Teil derComplicationData
. - Zusatzfunktionen werden jetzt im Cache gespeichert, was das Wechseln zwischen verschiedenen Zifferblättern erleichtert.
Sonstige Änderungen:
UserStyleSchema
undComplicationSlots
können jetzt in XML definiert werden. Das vereinfacht die Erstellung des Zifferblatts und ermöglicht schnellere Metadatenabfragen aus dem 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
wurde veröffentlicht. Version 1.1.0-rc01 enthält diese Commits.
Neue Funktionen
- Wir haben die XML-Unterstützung für Zifferblätter optimiert, um die Angabe von
ComplicationSlotBounds
und unterstützenden Referenzen zu vereinfachen. Es wird weiter mit der Zusatzfunktion für Kanten (BoundingArc
) experimentiert und sie wird andrawHighlight
weitergeleitet, obwohl die Verwendung zu diesem Zeitpunkt nicht empfohlen wird.
API-Änderungen
- Wir haben eine experimentelle Überlastung von
drawHighlight
hinzugefügt, die einenBoundingArc
-Parameter akzeptiert. (I705f8) - Zifferblatt-XML unterstützt jetzt Ressourcenverweise. Damit können Sie dieselben Konstanten sowohl in XML als auch in Ihrem Code verwenden. (I3ef61)
- Es wurde die Möglichkeit hinzugefügt,
ComplicationSlotBounds
im Formularcenter_x
,center_y
,size_x
,size_y
zu definieren. Jetzt ist es auch möglich, mithilfe von Ressourcenreferenzen verschiedene Einheiten (z.B. dp) zu verwenden. (Iace98)
Fehlerkorrekturen
- Fehler bei
runBlockingWithTracing
behoben, bei dem Aufgaben im falschen Kontext ausgeführt wurden (4f595fe) BaseEditorSession.close
synchron machen. Das Problem bei asynchronemBaseEditorSession.close
besteht darin, dassComplicationDataSourceInfoRetriever
zu spät freigegeben wird, was zu Spam-Warnung in Logcat führt. Das war wahrscheinlich harmlos, aber Logcat-Spam lenkt ab und sollte vermieden werden.(35a5308)
Version 1.1.0-beta02
11. Mai 2022
androidx.wear.watchface:watchface-*:1.1.0-beta02
wurde veröffentlicht. Version 1.1.0-beta02 enthält diese Commits.
Neue Funktionen
- Wir haben experimentelle Unterstützung für neue
ComplicationData
-Typen hinzugefügt. Diese sind noch nicht einsatzbereit, aber wir empfehlen Ihnen, sie hier anzusehen.
API-Änderungen
- Wir haben
BoundingArc
hinzugefügt, eine experimentelle Klasse, die die Geometrie eines Rand-Zusatzfunktionsslots beschreibt. Es wurdeComplicationSlot
hinzugefügt und anComplicationSlotState
undWatchFaceMetadataClient
weiterverarbeitet. (I61a40) - Es wurde die Möglichkeit hinzugefügt, Einstellungen in
UserStyleSetting
-XML zu übernehmen. Sie können damit die Ausführlichkeit reduzieren und eine Einstellung für verschiedene Zifferblätter verwenden. (Ief841) - Wir haben zwei neue experimentelle Typen von
ComplicationData
hinzugefügt:ListComplicationData
undProtoLayoutComplicationData
Momentan gibt es für keinen dieser Typen eine Rendering-Unterstützung und WearOS erkennt diese Typen derzeit nicht, wenn sie einemComplicationDataSource's
-Manifest hinzugefügt werden. (I1811c)
Fehlerkorrekturen
- Die Serialisierung des Typs
TimeLineEntry
wurde korrigiert. Wir haben den TypTimeLineEntry
nicht serialisiert. Das bedeutet, dass im Cache gespeicherteTimeLineEntries
vom Typ NoData fälschlicherweise so interpretiert wurden, dass der Typ der übergeordneten Zusatzfunktion zu NPEs führt, wenn auf nicht vorhandene Pflichtfelder zugegriffen wurde. (55ffdf5) - Fehler behoben, bei dem
setComplicationData
Zeitachsenfelder verworfen hat(fb392f5) - Es wurde ein Fehler behoben, bei dem
runBlockingWithTracing
gelegentlich zu einer NPE führte(12ca62e). - Es wurde ein Fehler behoben, bei dem manchmal
ClassNotFoundException: android.support.wearable.complications.ComplicationText
zurückgegeben wurde, wenn eine Zusatzfunktion angezeigt wird.(217942d9) - Es wurde ein Fehler in
GlesRenderer.backgroundThreadInitInternal
behoben, bei demonBackgroundThreadGlContextCreated
nur aufgerufen wurde, wennEGL14.eglCreateContext
aufgerufen wurde. Es wurde ein weiterer Fehler behoben, bei dem im Screenshot ein vonverticalFlip
verursachter visueller Fehler aufgetreten ist (c674ad2). - Fehler bei der Prüfung der XML-Version von
WatchFaceService
. Es wurde aus dem falschen Paket geladen.(dfa06f3) - Beim Platzhalterformat wird jetzt ein inneres Set verwendet. Wir möchten nicht, dass Platzhalter vorhandene Zifferblätter zerstören, die möglicherweise das versteckte innere a.s.w.c.ComplicationData verwenden. Bisher wurde der Platzhalter beim Wire-Format von
NoDataComplication
-Daten in den üblichen Feldern gespeichert. Das war problematisch, weil alte Zifferblätter den Platzhalterstring rendern würden, was nicht beabsichtigt war. Stattdessen verwenden wir jetzt ein inneres Bundle, um dies vollständig zu isolieren (d5e7bd2).
Version 1.1.0-beta01
20. April 2022
androidx.wear.watchface:watchface-*:1.1.0-beta01
wurde veröffentlicht. Version 1.1.0-beta01 enthält diese Commits.
API-Änderungen
- Jetzt lösen die
WatchFaceMetadataClient
-Methoden (getUserStyleSchema
,getComplicationSlotMetadataMap
,getUserStyleFlavors
) undHeadlessWatchFaceClient.getUserStyleFlavors
eine ungeprüfte RuntimeException anstelle vonWatchFaceException
aus. (I0718a) WatchFaceMetadataClient.WatchFaceException
wurde aus dem Kurs verschoben, damit er wiederverwendet werden kann. (I4e869)
Fehlerkorrekturen
WatchFaceMetadataClient
stürzt nicht mehr ab, wenn ein Teil derComplicationSlotBounds
gesendet wird.(Iaafd)
Version 1.1.0-alpha05
6. April 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha05
wurde veröffentlicht. Version 1.1.0-alpha05 enthält diese Commits.
Neue Funktionen
- Anhand von
ComplicationData.dataSource
können Sie jetzt feststellen, von welcher Datenquelle eineComplicationData
gesendet wurde. Einige Zifferblätter verwenden diese Funktion möglicherweise, um die Anzeige der Zusatzfunktion anzupassen. (I44a73)
API-Änderungen
Renderer.CanvasRenderer
undRenderer.GlesRenderer
wurden zugunsten vonRenderer.CanvasRenderer2
undRenderer.GlesRenderer2
eingestellt, dieSharedAssets
unterstützen, die an die Renderingmethoden übergeben werden. Für die Java-Interoperabilität haben wirListenableCanvasRenderer2
undListenableGlesRenderer2
eingeführt. (I31ffa)@WatchFaceFlavorsExperimental
-Funktion zum Definieren von Geschmacksrichtungen hinzugefügt – vorkonfigurierte Liste mit Zifferblättern mit benutzerdefinierten Stilen (I04dd0)Renderer.sharedAssets
ist jetzt ein StateFlow und wir haben die nicht verwendetenRenderer.SharedAssetsFactory
(I12ac5) entfernt.UserStyleSchema.userStyleSettings
wurde nicht mehr eingestellt (Iba7e3)- Wir haben
HeadlessWatchFaceClient.getUserStyleSchemaDigestHash
hinzugefügt. Damit kann einHeadlessWatchFaceClient
den relativ geringen Aufwand vermeiden, das Schema vor der Berechnung des Digest-Hashs über AIDL zu übergeben. (I33597) - Wir haben
isUserStyleSchemaStatic
zuWatchFaceMetadataClient
hinzugefügt. Dies ist nur dann der Fall, wenn sich dieUserStyleSchema
nur dann ändern kann, wenn das Zifferblatt-APK aktualisiert wird. (I45a3f) - Wir haben
getDigestHash
zuUserStyleSchema
hinzugefügt, wodurch ein Digest-Hash des Schemas berechnet wird. Damit lässt sich effizient feststellen, ob sich dieUserStyleSchema
geändert hat. (I2063d) METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIGURATION_SUPPORTED
wurde inMETADATA_KEY_DATA_SOURCE_DEFAULT_CONFIG_SUPPORTED
(I9ba5d) umbenanntUserStyleSetting.OnWatchEditorData
wurde inUserStyleSetting.WatchFaceEditorData
umbenannt. Sie 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
wurde veröffentlicht. Version 1.1.0-alpha04 enthält diese Commits.
API-Änderungen
- Die aktuelle
ComplicationData
ist möglicherweise nicht immer verfügbar (z. B. abgelaufene im Cache gespeicherte ComplicationData). Daher haben wirNoDataComplication
um den optionalen Platzhalter „ComplicationData“ erweitert undComplicationText.PLACEHOLDER
,MonochromaticImage.PLACEHOLDER
,SmallImage.PLACEHOLDER
undPhotoImage.PLACEHOLDER
hinzugefügt. Diese dürfen nur innerhalb des Kontexts einesNoDataComplicationData
-Platzhalters verwendet werden. Wenn diese Platzhalter ausgewählt sind, wird vorgeschlagen, dass diese Platzhalter mit grauen Feldern/Bögen gerendert werden. (I6285d) - Wir haben
ComplicationData.getNextChangeInstant
hinzugefügt, um dir den nächsten Instant-Fehler nach dem Referenz-Instant zu nennen, bei dem sich ein beliebiges Feld der Zusatzfunktion ändern kann. Wird intern verwendet, um Frames für Zusatzfunktionen zu planen. Beispiel: Wenn ein Zifferblatt normalerweise einmal pro Minute aktualisiert wird, führt das Aktivieren der Zusatzfunktion „Stoppuhr“ dazu, dass sie einmal pro Sekunde aktualisiert wird. (I7ceb2) EditorSession.watchFaceId
kann jetzt auf allen API-Ebenen verwendet werden. Außerdem entspricht der Wert jetzt immer derWatchState.watchFaceInstanceId
. (I323b9)- Die
getPendingIntentForTouchEvent
API ist nicht mehr erforderlich, da das zugrunde liegende Problem im Framework behoben wurde. Daher wurden alle zugehörigen APIs entfernt. Zifferblätter müssen nichts Besonderes tun, damitPendingIntents
ausgelöst wird, auch wenn die Startbildschirmtaste kürzlich gedrückt wurde. (I1f2e8) - Wir haben
RendererParameters.isForScreenShot
hinzugefügt. Dieser Wert ist "true", wenn das Rendern ein Screenshot ist. Einige Zifferblätter mit Animationen müssen dies wissen, damit sie Anpassungen vornehmen und so optimale Ergebnisse erzielen können. (I96d99) - Wir haben
WatchFaceExceptionReason
zuWatchFaceException
hinzugefügt, um besser zu erklären, was schiefgelaufen ist. (I01d15) - „
ComplicationDataSourceService.onImmediateComplicationRequest
“ wurde entfernt. Stattdessen wurde „ComplicationRequest.immediateResponseRequired
“ hinzugefügt, um zu signalisieren, dass der Anbieter schnell reagieren muss (idealerweise in weniger als 100 ms). Diese Funktion wird durch die privilegiertecom.google.android.wearable.permission.USE_IMMEDIATE_COMPLICATION_UPDATE
-Berechtigung geschützt. (IE6b23) - Null-Zulässigkeit in Core und Appcompat aktualisiert, um Tiramisu DP2 zu entsprechen (I0cbb7)
Fehlerkorrekturen
- Die Zifferblatt-App stürzt jetzt mit einer Ausnahme ab, wenn die Schemavalidierung fehlschlägt (Ia400f).
Version 1.1.0-alpha03
9. Februar 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha03
wurde veröffentlicht. Version 1.1.0-alpha03 enthält diese Commits.
API-Änderungen
- Wir haben experimentelle Unterstützung für hierarchische Stilschemas hinzugefügt. Wir haben
androidx.wear.watchface.style.UserStyleSetting.Option
eine neue Eigenschaft namens „childSettings“ hinzugefügt, die anfänglich nur vonListOption
verwendet wird. Dadurch kann eine Hierarchie von Stilen zur Verwendung durch Editor-Benutzeroberflächen beschrieben werden. Der zugrunde liegende UserStyle bleibt unverändert und bleibt 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
, einen neuen optionalen Konstruktorparameter fürCanvasRenderer
, eingeführt (Standardeinstellung ist „false“). Wenn dieser Parameter auf „true“ gesetzt ist, wird der Canvas mit der Hintergrundfarbe gelöscht. (Ie01e5) - Es wurde ein
androidx.watchface.complications.datasource.DEFAULT_CONFIGURATION_SUPPORTED
-Metadatenschlüssel hinzugefügt, mit dem Datenquellen für Zusatzfunktionen angeben können, dass sie einen Standardwert ohne Konfiguration bereitstellen können (Icc0d4). - Bei der Bearbeitung eines Zifferblatts wird häufig sowohl eine interaktive als auch eine monitorlose Instanz angezeigt. Um Arbeitsspeicher 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
wurden eingestellt. Es war nie vorgesehen, diese Einstellungen zu konfigurieren, und dies hätte zu nicht definiertem Verhalten geführt. (I0d9e7) - Wir haben
setNameResourceId
hinzugefügt undsetScreenReaderNameResourceId
(die auf Stringressourcen verweisen) aufComplicationSlot.Builder
und entsprechende Getter inandroidx.wear.watchface.client.ComplicationSlotState
. Dadurch kann das System die Namen von ComplicationSlots zur Verwendung in Editoren und Screenreadern abrufen. (If6c6a) WatchfaceMetadataClient.getUserStyleSchema
undgetComplicationSlotMetadataMap
geben jetztWatchFaceException
stattRemoteException
aus. (I86f11)onSynchronousComplicationRequest
und zugehörige Funktionen inComplicationDataSourceService
wurden inonImmediateComplicationRequest
usw. umbenannt... (I87ba0)- Zifferblatt-Editoren haben viel weniger Platz auf dem Bildschirm als Companion-Editoren. Daher ist es sinnvoll, verschiedene Symbole für Zifferblatt-Editoren zu unterstützen. Mit diesem Patch wird allen UserStyleSettings und gegebenenfalls ihren Optionsklassen
OnWatchEditorData
hinzugefügt, das derzeit nur ein Symbol enthält. (If1886) - Wir haben dem Konstruktor von ListenableGlesRenderer
@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 „
PhotoImageComplicationData
“-Funktion „tapAction“ nicht verwendet wurde korrekt gehandhabt werden (I1cc30)
Version 1.1.0-alpha02
12. Januar 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha02
wurde veröffentlicht. Version 1.1.0-alpha02 enthält diese Commits.
Neue Funktionen
- Um Fehler beim Debugging und Testen zu unterstützen, haben
ComplicationData
und zugehörige abgeleitete Klassen jetzt die Methoden Hashcode, gleich und toString überschrieben, was die Arbeit mit ihnen vereinfacht.
API-Änderungen
WatchfaceMetadataClient
-Methoden geben gegebenenfalls wiederRemoteExceptions
aus, sodass der Clientcode einfacher Fehler auf dem Zifferblatt abfangen kann. (I78785)ComplicationData
und Unterklassen haben jetzt den Hashcode, „ist gleich“ und „toString“. (I24bc6)
Version 1.1.0-alpha01
15. Dezember 2021
androidx.wear.watchface:watchface-*:1.1.0-alpha01
wurde veröffentlicht. Version 1.1.0-alpha01 enthält diese Commits.
Neue Funktionen
UserStyleSchema
undComplicationSlots
können jetzt in XML definiert werden. Das vereinfacht das Erstellen von Zifferblättern. Außerdem sindWatchFaceMetadataClient
-Abfragen schneller, da zum Abrufen der Metadaten keine Bindung an den Dienst erforderlich ist.WatchFaceMetadataClient
undListenableWatchFaceMetadataClient
sind nicht mehr experimentell und werden Teil der stabilen API. Das System kann optional mehrere Instanzen eines Zifferblatts mit jeweils eigenen benutzerdefinierten Stiloptionen unterstützen. Diese werden in der Zifferblattauswahl angezeigt. Um diese Funktion zu aktivieren, muss ein 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
UserStyle
erfasst wird. Um diese und mehrere Instanzen zu unterstützen, ist die Instanz-ID des Zifferblatts jetzt überWatchState.watchFaceInstanceId
verfügbar.ComplicationData
wird jetzt im Cache gespeichert, damit Zusatzfunktionen sofort nach dem Laden angezeigt werden können. Manchmal wirdComplicationData
vom System im Cache gespeichert und manchmal wird es von den Zifferblattbibliotheken serialisiert. Ist dies der Fall, werden alle verknüpften „tapAction“-Aktionen verloren. In diesem Fall gibtComplicationData.tapActionLostDueToSerialization
den Werttrue
zurück und das Zifferblatt sollte die Zusatzfunktion anders darstellen (z. B. ausgegraut oder halbtransparent), um zu signalisieren, dass sie nicht angetippt werden kann. Das System sendet so schnell wie möglich eine aktualisierteComplicationData
mit einertapAction
.Einige
ComplicationData
sollten längere Zeit nicht im Cache gespeichert werden. Deshalb haben wir eine allgemeinere Funktion hinzugefügt:ComplicationDataTimeline
. Dies kann verwendet werden, um eine Sequenz zeitlich gesteuerterComplicationData
bereitzustellen, die an das Zifferblatt gesendet und automatisch im Cache gespeichert und aktualisiert werden können. Zum Beispiel die heutige Wettervorhersage zu verschiedenen Zeiten oder mehrere anstehende Kalenderereignisse.ComplicationRequestListener
wurde mit der neuen MethodeonComplicationDataTimeline
erweitert, mit der Sie diese Daten zurückgeben können.DefaultComplicationDataSourcePolicy
wurde erweitert, sodass Sie dieComplicationType
für die primären und sekundären Datenquellen angeben können.Wir haben die Unterstützung für Anbieter synchroner Zusatzfunktionen hinzugefügt, bei denen die Zusatzfunktion häufiger als normal aktualisiert wird – bis zu einmal pro Sekunde, wenn das Zifferblatt sichtbar und nicht nah am Motiv ist. Hinweis:Anbieter synchroner Zusatzfunktionen können aufgrund von Bedenken wegen Speicherauslastung nur begrenzt genutzt werden.
Die
PendingIntentTapListener
-Änderungen werden wahrscheinlich rückgängig gemacht, da wir das zugrunde liegende Problem im Framework gelöst haben. Das Zifferblatt kann nach dem Drücken der Startbildschirmtaste 5 Sekunden lang Aktivitäten starten.
API-Änderungen
ComplicationData.isCached
wurde zutapActionLostDueToSerialization
geändert. Dies ist nützlicher, um festzustellen, ob die Zusatzfunktionsfläche anders gerendert werden soll, um zu signalisieren, dass sie nicht angetippt werden kann. (I6de2f)- „
ComplicationDataTimeline
“ wurde zu „wear-complication-data-source
“ hinzugefügt. Dies kann verwendet werden, um eine Sequenz zeitlich gesteuerterComplicationData
bereitzustellen, die an das Zifferblatt gesendet und automatisch im Cache gespeichert und aktualisiert werden können. Zum Beispiel die heutige Wettervorhersage zu verschiedenen Zeiten oder mehrere anstehende Kalenderereignisse.ComplicationRequestListener
wurde mit der neuen MethodeonComplicationDataTimeline
erweitert, mit der Sie diese Daten zurückgeben können. Es gibt einen neuen Kotlin-WrapperSuspendingTimelineComplicationDataSourceService
zum Sperren von Datenquellendiensten. (Idecdc) PendingIntentTapListener
undWatchFaceControlClient.getPendingIntentForTouchEvent
wurden hinzugefügt. Dies kann für Zifferblätter hilfreich sein, die als Reaktion auf Tippen Intents starten müssen, um ein Problem zu umgehen, bei dem das Framework nach dem Drücken der Startbildschirmtaste für 5 Sekunden den Start neuer Aktivitäten blockiert. (I98074)- Es wurde ein
ComplicationData
-Cache pro Zifferblatt eingeführt. So können auf dem Zifferblatt nach dem Laden die letzten bekannten Daten für Zusatzfunktionen angezeigt werden, bis das System die Möglichkeit hatte, sie zu aktualisieren. Die neue API-MethodeWatchFaceControlClient.hasComplicationCache
ist für OEMs vorgesehen. Dies kann die Strategie des Systems zum Senden von Zusatzfunktionen an ein Zifferblatt beeinflussen. Außerdem hatComplicationData
einisCached
-Attribut. Es wird empfohlen, im Cache gespeicherte Zusatzfunktionen anders zu rendern, weiltapAction
nicht im Cache gespeichert werden kann und in einer im Cache gespeicherten Zusatzfunktion zunull
ist. (I404b0) - Die Instanz-ID des Zifferblatts ist jetzt über
WatchState.watchFaceInstanceId
verfügbar. Bei den meisten Zifferblättern ist diese Funktion nicht erforderlich. Wenn jedoch ein Status pro Zifferblatt nicht im Schema gespeichert ist, muss dieser Schlüssel zum Identifizieren der Zifferblattinstanz verwendet werden. Dazu kannst du beim Aufruf vonWatchFaceControlClient.createHeadlessWatchFaceClient
jetzt eine ID angeben. (I1ff98) - Die Funktion „
DefaultComplicationDataSourcePolicy
“ wurde erweitert mit der Möglichkeit, die Standardeinstellung „ComplicationTypes
“ für den primären, sekundären Anbieter und für den Anbieter des Fallback-Systems festzulegen.ComplicationSlot.defaultDataSourceType
wurde verworfen. (If0ce3) ComplicationSlot.configExtras
kann jetzt geändert werden und kann vor dem Aufrufen vonEditorSession.openComplicationDataSourceChooser()
aktualisiert werden. (I6f852)WatchFace.setComplicationDeniedDialogIntent
undsetComplicationRationaleDialogIntent
wurden hinzugefügt. Diese Intents werden gestartet, um ein Dialogfeld mit einer Begründung anzuzeigen, bevor Berechtigungen für Zusatzfunktionen angefordert werden. Ein weiteres Dialogfeld, in dem erklärt wird, dass die Berechtigung für die Zusatzfunktion erforderlich ist, wenn versucht wird, eine Zusatzfunktion zu bearbeiten, wenn Berechtigungen verweigert wurden (die Anbieterauswahl wird nicht geöffnet, sodass das Dialogfeld erforderlich ist). (I3a29c)UserStyleSchema
undComplicationSlots
können jetzt in XML definiert werden. Das vereinfacht die Erstellung des Zifferblatts und beschleunigtWatchFaceMetadataClient
-Abfragen, da zum Abrufen der Metadaten keine Bindung an den Dienst erforderlich ist. (I85bfa)InteractiveWatchFaceClient.supportsPendingIntentForTouchEvent
wurde hinzugefügt, damit ein Client feststellen kann, ob ein ZifferblattgetPendingIntentForTouchEvent
unterstützt. (I0b917)WatchFaceMetadataClient
undListenableWatchFaceMetadataClient
sind nicht mehr experimentell. Sie können verwendet werden, um Zifferblattmetadaten effizient abzurufen, wenn möglich, ohne einen Binder für das Zifferblatt zu öffnen. (Ibb827)- Zusätzliche Unterstützung für Anbieter synchroner Zusatzfunktionen, bei denen die Zusatzfunktion häufiger als normal aktualisiert wird – bis zu einmal pro Sekunde, wenn das Zifferblatt sichtbar und nicht nah am Motiv ist. Um diese Funktion zu verwenden, 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, damit Sie benachrichtigt werden, wenn die Zusatzfunktion in den interaktiven Modus wechselt. (I8fe9d)
Version 1.0
Version 1.0.1
9. Februar 2022
androidx.wear.watchface:watchface-*:1.0.1
wurde veröffentlicht. Version 1.0.1 enthält diese Commits.
Fehlerkorrekturen
- Fehler behoben, bei dem „
PhotoImageComplicationData
“-Funktion „tapAction“ nicht verwendet wurde korrekt gehandhabt werden (I1cc30)
Version 1.0.0
1. Dezember 2021
androidx.wear.watchface:watchface-*:1.0.0
wurde veröffentlicht. Version 1.0.0 enthält diese Commits.
Hauptfunktionen von Version 1.0.0
Das androidx.wear.watchface
-Paket ist die neue empfohlene Bibliothek für die Entwicklung von Wear OS-Zifferblättern. Sie bietet gegenüber der bisherigen Wearable-Supportbibliothek eine Reihe neuer Funktionen.
- Nutzerstile (z.B. die Farbpalette, den Stil der Zifferblätter oder das Aussehen der Stundenmarkierungen) werden direkt von der Bibliothek unterstützt (siehe
androidx.wear.watchface.style
). Es ist jetzt viel einfacher, mit androidx.wear.watchface.editor einen Zifferblatt-Editor zu entwickeln. Ihr Zifferblatt kann über die System-Begleit-App bearbeitet werden, ohne dass Sie zusätzlichen Code schreiben müssen. - Best Practices integriert. Die Bibliothek generiert automatisch Screenreader-Inhaltslabels für Zusatzfunktionen (Sie können auch eigene hinzufügen). Die Framerate wird automatisch reduziert, wenn der Akku fast leer ist oder nicht geladen wird, um die Akkulaufzeit zu verlängern.
- Für die Entwicklung eines Zifferblatts ist weniger Code erforderlich, insbesondere bei Zusatzfunktionen, bei denen ein Großteil des Textbausteins in die Bibliothek verschoben wurde.
Fehlerkorrekturen
EditorSession.userStyle.compareAndSet
(I6f676) korrigieren- Sehr kurze Verzögerungen auf dem Zifferblatt beheben (Iffb97)
InteractiveWatchFaceImpl.onDestroy
im UI-Thread senden (I83340)- Verschiedene Probleme mit Übertragungsempfängern beheben (I7d25f)
Version 1.0.0-rc01
3. November 2021
androidx.wear.watchface:watchface-*:1.0.0-rc01
wurde veröffentlicht. Version 1.0.0-rc01 enthält diese Commits.
Fehlerkorrekturen
Dump() wurde von „adb shell dumpsys“ aufgerufen, das durch Ablaufmigrationen unterbrochen wurde. (087cf9e)
Achten Sie auf die richtige Reihenfolge von „writeDirectBootPrefs“. Wir möchten, dass „writeDirectBootPrefs“ immer nach „initStyleAndComplications“ ausgeführt wird. Andernfalls riskieren wir, dass die Initialisierung des UI-Threads verzögert wird.(37650ac)
Überprüfen Sie, ob Renderer.onDestroy aufgerufen wird. In dem Szenario, in dem der Renderer erstellt wurde, aber WF-init nicht abgeschlossen wurde und Engine.onDestroy aufgerufen wird, muss Renderer.onDestroy aufgerufen werden. (f9952dc)
Optimierung/Behebung von „isBatteryLowAndNotCharging“. Durch diesen Patch wird die Ersteinrichtung von isBatteryLowAndNotCharging früher verschoben, was bedeutet, dass die Einrichtung parallel mit createWatchFace. Außerdem hören wir jetzt auch ACTION_POWER_DISCONNECTED. ddffd80
InteractiveWatchFaceClientImpl.isConnectionAlive muss nach dem Schließen auf "false" gesetzt sein (ab9774e).
Version 1.0.0-beta01
27. Oktober 2021
androidx.wear.watchface:watchface-*:1.0.0-beta01
wurde 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
wurde 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. Hinweis: Das bedeutet, dass Sie diese Bibliothek in keine frühere Alphaversion vonwear:watchface:watchface-complications-data
aufnehmen können, da bei doppelten Klassen Fehler auftreten werden. (I97195) - Renderer.dump wurde in Renderer.onDump umbenannt und mit @UiThread annotiert. (I44845)
InteractiveWatchFaceClient.addWatchFaceReadyListener
wurde inaddOnWatchFaceReadyListener
umbenannt undremoveWatchFaceReadyListener
wurde inremoveOnWatchFaceReadyListener
umbenannt. (I48fea)- EditorSession
getComplicationsPreviewData
undgetComplicationsDataSourceInfo
sind keine Sperrfunktionen mehr, sondernStateFlow<>
-Attribute, deren Wert anfänglich null ist. In ListenableEditorSession wurdengetListenableComplicationPreviewData
undgetListenableComplicationsProviderInfo
zugunsten der neuenStateFlow<>
-Objekte aus der Basisklasse entfernt. Wenn Sie Änderungen im Java-Code beobachten möchten, können Sieandroidx.lifecycle.FlowLiveDataConversions.asLiveData
verwenden, um inLiveData<>
zu konvertieren. (IC5483)
Version 1.0.0-alpha23
29. September 2021
androidx.wear.watchface:watchface-*:1.0.0-alpha23
wurde veröffentlicht. Version 1.0.0-alpha23 enthält diese Commits.
Neue Funktionen
Die Zifferblatt-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 Zifferblatt und Zusatzfunktionen in die Bibliotheksgruppeandroidx.wear.watchface
. (b25f3c0) - EditorRequest.canWatchFaceSupportHeadlessEditing hinzugefügt, um einem Kunden mitzuteilen, ob ein Zifferblatt-Editor die monitorlose Bearbeitung unterstützt. Beachten Sie, dass es dabei einige falsch negative Ergebnisse geben wird, da die Unterstützung in asop/1756809 hinzugefügt wurde. Es wird jedoch für alle zukünftigen Zifferblätter der richtige Wert zurückgegeben. (ca55590)
- Renderer verfügt nun über eine dump()-Methode, die überschrieben werden kann, um den vom ABD-Shell-Dumpsys-Aktivitätsdienst WatchFaceService generierten Informationen benutzerdefinierte Daten hinzuzufügen. (95235f9)
- InteractiveWatchFaceClient.addWatchFaceReadyListener gibt jetzt zuerst den Executor an. (563ac2f)
- StateFlowCompatHelper wurde entfernt. Verwenden Sie stattdessen asLiveData (androidx.lifecycle.asLiveData). (bd35d3)
- CurrentUserStyleRepository.userStyle kann nicht mehr geändert werden. (I44889)
- WatchFaceReadyListener wurde in OnWatchFaceReadyListener umbenannt. (IC12a9)
Fehlerkorrekturen
- InteractiveInstanceManager.deleteInstance zum Aufrufen von onDestroy Dies ist erforderlich, um sicherzustellen, dass InteractiveWatchFaceImpl eine Speicherbereinigung abruft.(fce4af8, b/199485839)