啟用通知的通知權限

Android 13 的通知採用「選擇加入」模式,這與先前 Android 版本使用的「選擇不接收」模式不同。在 Android 13 中,所有應用程式都必須先徵求使用者同意,才能傳送通知提示。這項模型有助於減少通知干擾、避免資訊過載,並讓使用者根據自身需求控管通知顯示內容。如要支援選擇加入模式,原始設備製造商必須在通知和執行階段權限系統中實作變更。

本頁說明 OEM 必須實作哪些項目才能支援這項異動,以及如何驗證實作項目。

執行選擇接收通知的變更

自 Android 13 起,應用程式必須先向系統要求 android.permission.POST_NOTIFICATION 執行階段權限,宣告傳送通知的意圖,才能傳送通知。

在 Android 13 以上版本中,決定應用程式是否可傳送通知給使用者的設定,會儲存在權限系統中。在 Android 13 之前,這項設定會儲存在通知系統中。因此,原始設備製造商必須將現有的通知資料 (包括應用程式是否允許傳送通知) 從通知系統遷移至執行階段權限系統。原始設備製造商也必須維護通知系統中的現有 API,向應用程式開發人員顯示這類資料。

通知和權限系統的變更依據是使用者通知行為的選擇加入模式,詳情請參閱「實作指南」一節。

選擇接受型模式中的使用者通知行為

下表說明在搭載 Android 13 的裝置上,不同應用程式版本的通知行為:

搭載 Android 13 的裝置 指定 Android 13 以上版本的應用程式 指定 Android 13 以下版本的應用程式
新安裝 系統會封鎖通知,直到應用程式提示為止。

應用程式會控管何時要求權限。

在作業系統提示前,通知都會遭到封鎖。

應用程式首次執行時會要求權限。

現有應用程式 (升級) 在應用程式提示前,系統會允許通知。

系統會授予臨時權限,直到應用程式在首次符合條件的執行作業中要求權限為止。

系統會允許通知,直到作業系統提示為止。

系統會授予臨時權限,直到應用程式首次執行為止。

導入指南

如需參考實作方式,請參閱通知服務權限服務政策服務。如要為預設權限處理常式實作例外狀況,請參閱「執行階段權限」。

導入時,請遵循下列指南,瞭解指定 Android 13 以下 SDK 的應用程式使用者通知行為:

  • 在 Android 13 裝置上,新安裝的應用程式必須先獲得使用者核准權限提示,才能傳送通知。
    • 如果應用程式指定 Android 13 以上版本,就必須封鎖通知,直到應用程式提示為止,因為應用程式會控管要求使用者授權的時機和方式。
    • 如果應用程式指定低於 Android 13 的版本,則必須封鎖通知,直到作業系統提示為止。作業系統必須在應用程式首次執行時顯示權限提示。
  • 升級至 Android 13 前已安裝在裝置上的應用程式,或是透過備份與還原作業還原的應用程式,都必須允許傳送通知,直到使用者首次從該應用程式啟動活動為止。

    • 如果應用程式指定 Android 13 以上版本的 SDK,且使用者先前未在應用程式或 NotificationChannel 層級自訂這類應用程式的通知設定,請撤銷臨時授予的權限。應用程式必須先徵求使用者同意,才能繼續傳送通知。

      如果升級後的應用程式指定 Android 13 為目標平台,但目前未透過暫時升級授權取得通知權限,且使用者已啟動應用程式至少一次,則應用程式必須先顯示通知權限提示,才能執行任何後續前景服務。

    • 如果應用程式的目標 SDK 版本低於 Android 13,請在應用程式建立至少一個 NotificationChannel攔截首次啟動的活動,顯示權限提示,詢問使用者是否要接收應用程式的通知。

      如果使用者先前在升級裝置上的應用程式或NotificationChannel層級,自訂了通知設定,或是將備份資料還原到裝置,應用程式層級的設定就必須遷移到權限系統,並加上 FLAG_PERMISSION_USER_SET 標記。除非應用程式明確要求,否則不得向使用者顯示進一步的通知權限提示。

  • Android 13 裝置與搭載舊版 OS 的裝置之間,必須能互相備份及還原資料。Android 13 裝置產生的備份資料必須還原到較舊的作業系統版本,而較舊作業系統版本的備份資料則必須還原到 Android 13 裝置。

  • 與持續播放媒體相關聯的媒體通知必須免除通知權限。

驗證通知和權限系統的變更

如要驗證導入作業,請執行下列測試: