自 2025 年 3 月 27 日起,我們建議您使用 android-latest-release
而非 aosp-main
建構及貢獻 AOSP。詳情請參閱「Android 開放原始碼計畫變更」。
全螢幕意圖限制
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
為防範垃圾廣告和憑證網路釣魚攻擊,自 Android 14 起,只有提供通話和鬧鐘功能的應用程式,才能取得傳送全螢幕通知的預設 USE_FULL_SCREEN_INTENT
權限。
對於在 Android 14 上安裝的所有應用程式,系統預設會啟用 USE_FULL_SCREEN_INTENT
權限。安裝後,Google Play 商店會針對沒有通話或鬧鐘功能的應用程式撤銷全螢幕意圖 (FSI) 權限。
如果應用程式安裝在執行 Android 13 以下版本的手機上,USE_FULL_SCREEN_INTENT
權限預設為啟用。
使用者權限
在 Android 14 中,應用程式可以使用 NotificationManager#canUseFullScreenIntent()
檢查是否可以傳送全螢幕通知。為了取得使用者傳送全螢幕通知的權限,應用程式會使用 ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT
啟動「管理全螢幕意圖」設定,如圖 1 所示:
圖 1. 可讓應用程式傳送全螢幕意圖的 UI。
「管理全螢幕意圖」設定位於「特殊應用程式存取權」下方的「設定」選單中。使用者可以透過這個使用者介面,視需要撤銷這項權限。
原始設備製造商 (OEM) 規定
在 Android 14 中,系統會預設啟用應用程式的 FSI 權限。原始設備製造商必須指定哪些應用程式符合 FSI 權限的資格。原始設備製造商 (OEM) 必須確保第三方應用程式商店使用 PackageInstaller.SessionParams
為其應用程式設定 FSI 權限的初始授權狀態,特別是使用 PERMISSION_STATE_DEFAULT
、PERMISSION_STATE_DENIED
和 PERMISSION_STATE_GRANTED
參數。
驗證
請使用 NotificationFullScreenIntentVerifierActivity.java
中的 CTS 驗證工具測試,以及 NotificationManagerTest.java
中的 CTS 測試,驗證 FSI 限制。
手動測試
如要手動測試應用程式的 FSI 限制,請按照下列步驟操作:
- 在應用程式的
AndroidManifest.xml
檔案中宣告 USE_FULL_SCREEN_INTENT
。
- 使用
ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT
管理設定,開啟或關閉 FSI。
- 在測試手機上,手動切換全螢幕通知的使用者權限,如圖 1 所示。
- 傳送金融服務業通知。
- 針對下列 FSI 權限和顯示模式組合,驗證全螢幕通知的外觀:
金融服務業 (FSI) 權限
|
螢幕解鎖
|
螢幕鎖定畫面
|
螢幕外
|
螢幕長亮模式 (AOD)
|
由使用者授予
|
含有藥丸按鈕的持續抬頭通知 (HUN) |
啟動金融服務業 |
啟動金融服務業 |
啟動金融服務業 |
已遭使用者拒絕
|
HUN,含 60 秒的圓形按鈕 |
清單中會先顯示含有圓形按鈕的 HUN,時間為 60 秒 |
AOD 開啟,顯示抬頭通知和圓形按鈕 60 秒 |
HUN,含 60 秒的圓形按鈕 |
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2025-07-27 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2025-07-27 (世界標準時間)。"],[],[],null,["# Full-screen intent limits\n\nTo prevent ad spam and credential phishing, starting with Android 14,\nthe default [`USE_FULL_SCREEN_INTENT`](https://developer.android.com/reference/android/Manifest.permission#USE_FULL_SCREEN_INTENT)\npermission to send full-screen notifications can be granted only to apps that\nprovide calling and alarm functionalities.\n\nFor all apps being installed on Android 14, the\n[`USE_FULL_SCREEN_INTENT`](https://developer.android.com/reference/android/Manifest.permission#USE_FULL_SCREEN_INTENT)\npermission is enabled by default. Upon installation, the Google Play Store\nrevokes the full-screen intent (FSI) permission for apps that do not have\ncalling or alarm functionalities.\n\nFor apps installed on phones running versions\nAndroid 13 or lower, the\n[`USE_FULL_SCREEN_INTENT`](https://developer.android.com/reference/android/Manifest.permission#USE_FULL_SCREEN_INTENT)\npermission remains enabled by default.\n\nUser permission\n---------------\n\nWith Android 14, apps can use [`NotificationManager#canUseFullScreenIntent()`](https://developer.android.com/reference/android/app/NotificationManager#canUseFullScreenIntent())\nto check if they can send full-screen notifications. To get user permission to\nsend full-screen notifications, apps use [`ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT`](https://developer.android.com/reference/android/provider/Settings#ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT)\nto launch the **Manage full screen intents** setting as shown in Figure 1:\n\n**Figure 1.** UI for enabling apps to send full-screen intents.\n\nThe **Manage full screen intents** setting is in the **Settings** menu under\n**Special App Access**. With this UI, users can revoke this permission if needed.\n\nOEM requirements\n----------------\n\nIn Android 14, FSI permissions for apps are enabled by\ndefault. OEMs must specify which apps qualify for FSI permissions. OEMs must\nensure that third-party app stores set the initial grant states of FSI\npermissions for their apps using\n[`PackageInstaller.SessionParams`](https://developer.android.com/reference/android/content/pm/PackageInstaller.SessionParams),\nspecifically with the [`PERMISSION_STATE_DEFAULT`](https://developer.android.com/reference/android/content/pm/PackageInstaller.SessionParams#PERMISSION_STATE_DEFAULT), [`PERMISSION_STATE_DENIED`](https://developer.android.com/reference/android/content/pm/PackageInstaller.SessionParams#PERMISSION_STATE_DENIED), and [`PERMISSION_STATE_GRANTED`](https://developer.android.com/reference/android/content/pm/PackageInstaller.SessionParams#PERMISSION_STATE_GRANTED)\nparameters.\n\nValidation\n----------\n\nUse the CTS Verifier test in [`NotificationFullScreenIntentVerifierActivity.java`](https://android.googlesource.com/platform/cts/+/refs/heads/android16-release/apps/CtsVerifier/src/com/android/cts/verifier/notifications/NotificationFullScreenIntentVerifierActivity.java),\nand the CTS test in [`NotificationManagerTest.java`](https://cs.android.com/android/platform/superproject/+/android-latest-release:cts/tests/app/src/android/app/cts/NotificationManagerTest.java;drc=ed156b1d4a7d91675dba1adb9191a92cf439dab0;l=148)\nto validate the FSI limits.\n\n### Manual tests\n\nFollow these steps to manually test FSI limits on your app:\n\n1. Declare [`USE_FULL_SCREEN_INTENT`](https://developer.android.com/reference/android/Manifest.permission#USE_FULL_SCREEN_INTENT) in your app's `AndroidManifest.xml` file.\n2. Use [`ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT`](https://developer.android.com/reference/android/provider/Settings#ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT) to manage settings to turn FSI on or off.\n3. On your test phone, manually toggle the user permission for full-screen notifications as shown in Figure 1.\n4. Send an FSI notification.\n5. Validate the appearance of the full-screen notification for the following combinations of FSI permission and display modes:\n\n|--------------------|----------------------------------------------------------|----------------------------------------------------------|---------------------------------------------------|-------------------------------|\n| **FSI permission** | **Unlocked screen** | **Locked screen** | **Off screen** | **Always-on display (AOD)** |\n| Granted by user | Persistent heads-up notification (HUN) with pill buttons | Launch FSI | Launch FSI | Launch FSI |\n| Denied by user | HUN with pill buttons for 60s | HUN with pill buttons shows up first in the list for 60s | AOD turns on, shows HUN with pill buttons for 60s | HUN with pill buttons for 60s |"]]