更新您的應用程式's 目標 SDK 版本 - Wear OSOS 第 4 版

更新應用程式、為 Wear OS 4 做好準備後,您可以指定 Android 13 (API 級別 33),進一步提高應用程式與這個 Wear OS 版本的相容性。

如果您更新了目標 SDK 版本,請分別針對指定 Android 12 以上版本指定 Android 13 以上版本的應用程式,處理系統行為變更。請特別考量本指南稍後會說明的權限變更,以及應用程式元件和導覽行為變更

更新建構檔案

如要更新目標 SDK 版本,請開啟模組層級的 build.gradlebuild.gradle.kts 檔案,然後更新為 Android 13 的值。

建構檔案中值的格式,取決於您使用的 Android Gradle 外掛程式 (AGP) 版本。

AGP 7.0.0 以上版本

如果您使用 AGP 7.0.0 以上版本,請將應用程式的 build.gradlebuild.gradle.kts 檔案更新為下列 Android 13 的值:

Groovy

android {
    compileSdk 33
    ...
    defaultConfig {
        targetSdk 33
    }
}

Kotlin

android {
    compileSdk = 33
    ...
    defaultConfig {
        targetSdk = 33
    }
}

AGP 4.2.0 以下版本

如果您使用 AGP 4.2.0 以下版本,請將應用程式的 build.gradlebuild.gradle.kts 檔案更新為下列 Android 13 的值:

Groovy

android {
    compileSdkVersion "33"
    ...
    defaultConfig {
        targetSdkVersion "33"
    }
}

Kotlin

android {
    compileSdkVersion = "33"
    ...
    defaultConfig {
        targetSdkVersion = "33"
    }
}

權限變更

本節列出在應用程式指定 Android 13 後,會對應用程式造成影響的幾項權限變更。

背景人體感應器權限

如要取得常見的人體感應器資訊 (例如心率),請在背景要求 BODY_SENSORS_BACKGROUND 權限。

請參閱這份指南,進一步瞭解如何要求人體感應器資料的背景存取權。

精確鬧鐘權限

如要使用精確計時鬧鐘 (也稱為「精確鬧鐘」),您必須宣告 USE_EXACT_ALARMSCHEDULE_EXACT_ALARM 權限。

除非應用程式的核心功能必須採用精確鬧鐘,例如鬧鐘應用程式或日曆應用程式,否則請改用不精確鬧鐘。大多數應用程式都可使用非精確鬧鐘排定工作和活動時間。

進一步瞭解如何設定精確鬧鐘

精細媒體權限

如果應用程式需要存取其他應用程式建立的媒體檔案,您必須要求開頭為 READ_MEDIA_* 的精細媒體權限,而非 READ_EXTERNAL_STORAGE 權限。如果應用程式先前已取得 READ_EXTERNAL_STORAGE 權限,則系統會自動授予所需的精細媒體權限。

進一步瞭解精細媒體權限

應用程式元件和導覽變更

本節列出在應用程式指定 Android 13 後,會對應用程式造成影響的幾項應用程式元件和導覽行為變更。

應用程式元件匯出規定

如果應用程式包含使用意圖篩選器的活動、服務或廣播接收器,您必須為這些應用程式元件明確宣告 android:exported 屬性。

進一步瞭解更安全的元件匯出功能

指定待處理意圖的可變動性

您必須指定應用程式中的每個 PendingIntent 物件是否可變動。在大多數情況下,請使用不可變動的 PendingIntent 物件,保護意圖內資料的完整性。

進一步瞭解如何指定待處理意圖的可變動性

前景服務啟動限制

在大多數情況下,應用程式在背景執行時就無法啟動前景服務。

進一步瞭解從背景啟動前景服務的限制

通知彈跳床限制

使用者與通知互動後,您就無法在服務或廣播接收器中呼叫 startActivity()。這種插頁式應用程式元件只具備啟動活動的功能,稱為「通知彈跳床」

進一步瞭解通知彈跳床限制