Dynamische Ausdrücke in Wear OS
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Wear OS unterstützt dynamische Updates für Informationen, die in deinen Kacheln angezeigt werden
und Zusatzfunktionen.
Mit dynamischen Ausdrücken können Sie Daten binden, die auf einer Oberfläche
wie eine Kachel oder Zusatzfunktion
zu einer bestimmten Datenquelle hinzufügen. Ein Beispiel für
sind Herzfrequenzdaten,
die von der Plattform gelesen werden können. Nachdem Sie
diese Bindung festgelegt haben, aktualisiert das System die Daten in Ihren Tiles und
automatisch hinzu.
Dynamische Datenbindungen erstellen
Definieren Sie zum Erstellen einer dynamischen Datenbindung eine Variable, die eine
dynamischen Datentyp, Verknüpfen Sie diese Variable mit dem Datenstream,
die Sie verwenden möchten.
Sie können beispielsweise Werte abrufen, die sich auf die Uhr und den Systemzustand beziehen.
enthalten, wie im folgenden Code-Snippet dargestellt.
Kotlin
val systemTime = DynamicInstant.platformTimeWithSecondsPrecision()
val steps: DynamicInt32 = PlatformHealthSources.dailySteps()
Java
DynamicInstant systemTime = DynamicInstant.platformTimeWithSecondsPrecision();
DynamicInt32 steps = PlatformHealthSources.dailySteps();
Sie können auch dynamische Werte
aus konstanten Ausdrücken erstellen und
arithmetische Operationen auf einen beliebigen dynamischen Wert angewendet, wie im folgenden Snippet gezeigt:
Kotlin
val dynamicValue = DynamicInt32.constant(1).plus(2)
Java
DynamicInt32 dynamicValue = DynamicInt32.constant(1).plus(2)
Liste der möglichen dynamischen Datentypen
Wear OS unterstützt die folgenden dynamischen Datentypen:
Darüber hinaus können Sie den Datentyp mithilfe von integrierten Funktionen transformieren, z. B.
wie folgt:
DynamicInt32
unterstützt die Konvertierung in eine DynamicString
mithilfe von
format()
- Mit
DynamicDuration
können Sie bestimmte Teile extrahieren, z. B. den Sekundenteil
einer Dauer als DynamicInt32
-Objekte.
Eine begrenzte Anzahl dynamischer Ausdrücke auf jedem Bildschirm verwenden
Die Anzahl der dynamischen Ausdrücke, die verarbeitet werden können, ist im System begrenzt
gleichzeitig auf einem bestimmten Bildschirm. Das System wandelt alle weiteren
in statische Werte zu verwandeln.
Wear OS betrachtet konstante Ausdrücke auch als dynamische Ausdrücke. Für
Das folgende Code-Snippet enthält beispielsweise vier dynamische Ausdrücke:
- Der Vorgang
plus()
.
- Der Vorgang
animate()
.
- Der Ausdruck
constant(1)
.
- Der Ausdruck
constant(2)
, der durch den Wert 2
im
plus()
dynamischer Ausdruck.
DynamicInt32.constant(1).plus(2).animate()
Empfehlungen für dich
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-07-27 (UTC)."],[],[],null,["# Dynamic expressions in Wear OS\n\nWear OS supports dynamic updates to information that appears in your [tiles](/training/wearables/tiles)\nand [complications](/training/wearables/tiles/complications).\n\nUsing dynamic expressions, you can bind data that appears on a surface of your\napp--such as a tile or complication--to a particular data source. An example of\nsuch a data source is heart rate data that the platform can read. After you've\nestablished this binding, the system updates the data in your tiles and\ncomplications automatically.\n\nCreate dynamic data bindings\n----------------------------\n\nTo create a dynamic data binding, define a variable that uses a\n[dynamic data type](#data-types). Associate this variable with the data stream that you\nwant to use.\n\nFor example, you can fetch values related to the system clock and health\ninformation, as shown in the following code snippet.\n| **Note:** To access the data in [`PlatformHealthSources`](/reference/androidx/wear/protolayout/expression/PlatformHealthSources), you must [request a\nruntime permission](/training/permissions/requesting) in your app. \n\n### Kotlin\n\n```kotlin\nval systemTime = DynamicInstant.platformTimeWithSecondsPrecision()\nval steps: DynamicInt32 = PlatformHealthSources.dailySteps()\n```\n\n### Java\n\n```java\nDynamicInstant systemTime = DynamicInstant.platformTimeWithSecondsPrecision();\nDynamicInt32 steps = PlatformHealthSources.dailySteps();\n```\n\nYou can also create dynamic values from constant expressions and perform\narithmetic operations on any dynamic value, as shown in the following snippet: \n\n### Kotlin\n\n```kotlin\nval dynamicValue = DynamicInt32.constant(1).plus(2)\n```\n\n### Java\n\n```java\nDynamicInt32 dynamicValue = DynamicInt32.constant(1).plus(2)\n```\n\n### List of possible dynamic data types\n\nWear OS supports the following dynamic data types:\n\n- [`DynamicBool`](/reference/androidx/wear/protolayout/expression/DynamicBuilders.DynamicBool)\n- [`DynamicColor`](/reference/androidx/wear/protolayout/expression/DynamicBuilders.DynamicColor)\n- [`DynamicDuration`](/reference/androidx/wear/protolayout/expression/DynamicBuilders.DynamicDuration)\n- [`DynamicFloat`](/reference/androidx/wear/protolayout/expression/DynamicBuilders.DynamicFloat)\n- [`DynamicInstant`](/reference/androidx/wear/protolayout/expression/DynamicBuilders.DynamicInstant)\n- [`DynamicInt32`](/reference/androidx/wear/protolayout/expression/DynamicBuilders.DynamicInt32)\n- [`DynamicString`](/reference/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString)\n\nIn addition, you can transform the data type using built-in capabilities, such\nas the following:\n\n- `DynamicInt32` supports conversion to a `DynamicString` using [`format()`](/reference/androidx/wear/protolayout/expression/DynamicBuilders.DynamicInt32#format()).\n- `DynamicDuration` lets you extract specific parts, such as the seconds part of a duration, as `DynamicInt32` objects.\n\nUse a limited number of dynamic expressions on each screen\n----------------------------------------------------------\n\nThe system has a limit on the number of dynamic expressions that it can process\nsimultaneously on a particular screen. The system converts any additional\ndynamic expressions to static values.\n\nWear OS considers constant expressions to be dynamic expressions, too. For\nexample, the following code snippet contains 4 dynamic expressions:\n\n1. The `plus()` operation.\n2. The `animate()` operation.\n3. The `constant(1)` expression.\n4. The `constant(2)` expression, which is implied by the value `2` in the `plus()` dynamic expression.\n\n DynamicInt32.constant(1).plus(2).animate()\n\nRecommended for you\n-------------------\n\n- Note: link text is displayed when JavaScript is off\n- [Migrate to ProtoLayout namespaces](/training/wearables/tiles/migrate-to-protolayout)\n- [Side-effects in Compose](/develop/ui/compose/side-effects)\n- [AGSL Quick Reference](/develop/ui/views/graphics/agsl/agsl-quick-reference)"]]