為了防範廣告垃圾內容和憑證網路釣魚,從 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。
「管理全螢幕意圖」設定位於「設定」選單的「特殊應用程式存取權」下方。使用者可以透過這個 UI 視需要撤銷這項權限。
原始設備製造商 (OEM) 規定
在 Android 14 中,系統會預設啟用應用程式的 FSI 權限。原始設備製造商必須指定哪些應用程式符合 FSI 權限的資格。原始設備製造商 (OEM) 必須確保第三方應用程式商店使用 PackageInstaller.SessionParams
,為應用程式設定 FSI 權限的初始授予狀態,特別是使用 PERMISSION_STATE_DEFAULT
、PERMISSION_STATE_DENIED
和 PERMISSION_STATE_GRANTED
參數。
驗證
在 NotificationFullScreenIntentVerifierActivity.java
中使用 CTS Verifier 測試,並在 NotificationManagerTest.java
中使用 CTS 測試,驗證 FSI 限制。
手動測試
如要手動測試應用程式的 FSI 限制,請按照下列步驟操作:
- 在應用程式的
AndroidManifest.xml
檔案中宣告USE_FULL_SCREEN_INTENT
。 - 使用
ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT
管理設定,開啟或關閉 FSI。 - 在測試手機上,手動切換全螢幕通知的使用者權限,如圖 1 所示。
- 傳送 FSI 通知。
- 針對下列 FSI 權限和顯示模式組合,驗證全螢幕通知的外觀:
金融服務業 (FSI) 權限 | 已解鎖的螢幕 | 螢幕鎖定畫面 | 螢幕關閉 | 螢幕長亮模式 (AOD) |
由使用者授予 | 含有藥丸按鈕的持續抬頭通知 (HUN) | 啟動金融服務業 | 啟動 FSI | 啟動金融服務業 |
已遭使用者拒絕 | 使用藥丸按鈕顯示 60 秒 | 清單中會先顯示含有圓形按鈕的 HUN,時間為 60 秒 | 開啟「螢幕長亮模式」(AOD) 功能時,60 秒處顯示 HUN 字樣 | 使用藥丸按鈕顯示 60 秒 |