Wear OS 中的动态表达式

Wear OS 支持对功能块复杂功能中显示的信息进行动态更新。

通过动态表达式,您可以将显示在应用 surface 上的数据(例如功能块或复杂功能)绑定到特定数据源。平台可读取的心率数据就是此类数据源的一个例子。创建此绑定后,系统会自动更新功能块和复杂功能中的数据。

创建动态数据绑定

如需创建动态数据绑定,请定义一个使用动态数据类型的变量。将此变量与您要使用的数据流相关联。

例如,您可以提取与系统时钟和健康信息相关的值,如以下代码段所示。

Kotlin

val systemTime = DynamicInstant.platformTimeWithSecondsPrecision()
val steps: DynamicInt32 = PlatformHealthSources.dailySteps()

Java

DynamicInstant systemTime = DynamicInstant.platformTimeWithSecondsPrecision();
DynamicInt32 steps = PlatformHealthSources.dailySteps();

您还可以通过常量表达式创建动态值,并针对所有动态值执行算术运算,如以下代码段所示:

Kotlin

val dynamicValue = DynamicInt32.constant(1).plus(2)

Java

DynamicInt32 dynamicValue = DynamicInt32.constant(1).plus(2)

可能的动态数据类型列表

Wear OS 支持以下动态数据类型:

此外,您还可以使用内置功能转换数据类型,例如:

  • DynamicInt32 支持使用 format() 转换为 DynamicString
  • DynamicDuration 允许您将特定部分(例如持续时间的秒数部分)提取为 DynamicInt32 对象。

限制每个界面上的动态表达式数量

系统对特定界面上可同时处理的动态表达式数量设有限制,因而会将任何额外的动态表达式转换为静态值。

Wear OS 也将常量表达式视为动态表达式。例如,以下代码段包含 4 个动态表达式:

  1. plus() 运算。
  2. animate() 运算。
  3. constant(1) 表达式。
  4. constant(2) 表达式,隐含在 plus() 动态表达式的值 2 中。
DynamicInt32.constant(1).plus(2).animate()