測試應用程式處理行為變更的方式

Wear OS 5 開發人員預覽版以 Android 14 (API 級別 34) 為建構基礎,相較於 Wear OS 4 採用的 Android 13 (Android 13 或 API 級別 33),中間歷經較新的版本。因此,如果您打算在 Wear OS 5 開發人員預覽版上使用 Wear OS 應用程式,就需要處理影響 Android 14 所有應用程式的行為變更,以及以 Android 14 為目標版本的應用程式變更

Wear OS 5 的變更影響所有應用程式

以下行為變更會影響 Wear OS 專用的用途和程式庫。無論目標 SDK 版本為何,這些變更都會影響在 Wear OS 5 上執行的所有應用程式。

隱私資訊主頁

Wear OS 5 開發人員預覽版最初是在 Android 12 的行動裝置上推出隱私資訊主頁支援。

隱私資訊主頁可讓使用者集中查看各個應用程式的數據用量,包括下列詳細資料:

  • 存取的資料類型,例如位置和麥克風。
  • 上次存取這些資料類型的時間。

藉由存取這類資訊,使用者可以做出更明智的決定,瞭解哪些應用程式仍能存取他們的個人資料。為了維持使用者的信任,在收集和使用使用者資料時,請以負責任的態度使用資料,並保持透明公開。

大部分的小工具資料來源都需要使用錶面格式

在即將推出的 Wear OS 版本 (包括 Wear OS 5 開發人員預覽版) 中,錶面必須使用錶面格式才能支援包含使用者資料的小工具。建議您更新錶面來採用錶面格式。進一步瞭解這些小工具相關異動

暫時停用測試用變更

這項功能預設為啟用。如要停用與此變更相對應的功能旗標,用於測試,請使用下列指令:

adb shell device_config put wear_services \
  com.google.wear.services.infra.flags.restrict_complications_flag false && \
  adb reboot

Wear OS 5 變更會影響指定 Android 14 的應用程式

只有將目標 SDK 版本更新至 Android 14 (即 Wear OS 5 開發人員預覽的採用版本) 時,您的應用程式會受到以下變更影響。

一律開啟的應用程式可以移至背景

從 Wear OS 5 開發人員預覽版開始,如果持續執行的應用程式在微光模式下顯示一段時間,系統就會將其移至背景。使用者可以在系統設定中調整逾時設定。

如果持續待機應用程式顯示進行中使用者工作的相關資訊 (例如音樂播放或健身時段),建議您在工作結束之前持續顯示持續性活動。如要這麼做,請使用 Ongoing Activity API 張貼與持續待機活動連結的持續性通知。

為讓系統識別持續性活動,持續性通知的觸控意圖必須指向持續待機活動,如以下程式碼片段所示:

// Create a pending intent that point to your always-on activity
val touchIntent =
    PendingIntent.getActivity(
        context,
        0,
        Intent(context, MyAlwaysOnActivity::class.java),
        PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT
    )

val notificationBuilder =
    NotificationCompat.Builder(this, CHANNEL_ID)
    // ...
    .setOngoing(true)

val ongoingActivity =
    OngoingActivity.Builder(
        applicationContext, NOTIFICATION_ID, notificationBuilder
    )
    // ...
    .setTouchIntent(touchIntent)
    .build()

ongoingActivity.apply(applicationContext)

notificationManager.notify(
    NOTIFICATION_ID,
    notificationBuilder.build()
)

暫時停用測試用變更

這項功能預設為啟用。如要停用與此變更相對應的功能旗標,用於測試,請使用下列指令:

adb shell device_config put wear_frameworks \
  com.google.android.clockwork.systemui.flags.ambiactive_components_expirable \
  false && adb reboot

運動錄影應用程式必須宣告前景服務類型

如果應用程式會在使用者的健身工作階段中記錄運動,您必須在叫用 ExerciseClient 的前景服務中指定 health 前景服務類型。此外,如果應用程式可在健身工作階段中監控位置資訊,您還必須指定 location 前景服務類型:

<manifest ...>
  <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <application ...>
      <!-- If your app can also monitor location information, use
           android:foregroundServiceType="health|location" instead. -->
      <service
          android:name=".MyExerciseSessionRecorder"
          android:foregroundServiceType="health">
      </service>
    </application>
</manifest>

某些腕上裝置可保持解鎖狀態的時間

在搭載 Wear OS 5 開發人員預覽版的支援裝置上,系統會偵測使用者是否將裝置佩戴在手腕上。如果使用者關閉手腕偵測功能,然後將裝置從手腕取下,系統會讓裝置解鎖時間比其他裝置更長。

如果應用程式需要更高的安全性層級 (例如顯示可能具敏感性的或私人資料時),請先檢查手腕偵測功能是否已啟用:

val wristDetectionEnabled =
        isWristDetectionAutoLockingEnabled(applicationContext)

如果此方法的傳回值為 false,請在顯示使用者特定內容之前,提示使用者在應用程式中登入帳戶。

可拖曳的內容可能會重疊到系統手勢的啟動點

從 Wear OS 5 開發人員預覽版開始,系統會分開處理動作事件手勢,與系統 UI 中使用的手勢操作分開處理。

如果應用程式的 UI 包含與系統手勢區域重疊的大型可拖曳空間,您可能需要為這些檢視畫面新增系統手勢排除矩形。方法是呼叫 setSystemGestureExclusionRects(),指示系統 UI 忽略特定區域的導覽手勢。這類似於行動應用程式中處理相衝突的應用程式手勢,以提供無邊框 UI 體驗。

您可以使用 setSystemGestureExclusionRects() API,讓系統 UI 以不同方式回應手勢要求。舉例來說,系統 UI 可能會顯示其他 UI 提示 (例如水平列),藉此確認使用者的意圖。

非線性字型縮放

從 Wear OS 5 開發人員預覽版開始,此系統支援更流暢的字型縮放功能,尤其是在使用者選擇較大字型大小時,在以檢視區塊為基礎的 UI 元件中。

隱含和待處理意圖的限制

如果您在應用程式中使用資訊方塊,請檢查意圖是否受隱含和待處理意圖的限制影響。

但仍無法關閉部分通知

在搭載 Android 14 (API 級別 34) 以上版本的裝置上使用應用程式的手持版本時,使用者可以關閉通知,在舊版中無法關閉。

不過,在 Wear OS 5 開發人員預覽版中,您仍無法關閉這類通知。

Android 14 的其他變更

以下 Android 14 變更最有可能對 Wear OS 應用程式造成影響。

影響所有應用程式的 Android 14 變更

Android 14 變更會影響目標 API 級別 34 的應用程式