Wear OS 中的動態運算式

Wear OS 支援對資訊方塊小工具顯示的資訊進行動態更新。

透過動態運算式,您可以將顯示在應用程式介面上的資料 (例如資訊方塊或小工具) 繫結至特定資料來源。平台可讀取的心率資料,就是這類資料來源的例子。建立這個繫結後,系統會自動更新資訊方塊和小工具的資料。

建立動態資料繫結

如要建立動態資料繫結,請定義使用動態資料類型的變數。將這個變數與要使用的資料串流建立關聯。

例如,您可以擷取與系統時鐘和健康資訊相關的值,如以下程式碼片段所示。

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()