Android 14 平台包含可能對應用程式造成影響的行為變更。無論 targetSdkVersion
為何,當應用程式在 Android 14 上執行時,下列行為變更將會套用至所有應用程式。您應測試應用程式,並視需要修改,以便在適當情況下支援新版本功能。
另請務必查看僅對指定 Android 14 為目標版本的應用程式造成影響的行為變更。
核心功能
根據預設,系統會拒絕排定精確鬧鐘
精確鬧鐘是針對使用者需求或需要在確切時間發生的操作所設計的通知。自 Android 14 起,SCHEDULE_EXACT_ALARM
權限不再預先授予以 Android 13 以上版本為目標所安裝的最新應用程式;該權限依預設為拒絕狀態。
進一步瞭解精準鬧鐘排程權限變更。
在應用程式快取期間,註冊使用情境的廣播訊息會排入佇列
在 Android 14 中,當應用程式處於快取狀態時,系統可能會將已註冊使用情境廣播訊息排入佇列。這與 Android 12 (API 級別 31) 針對非同步繫結機制交易所推出的排入佇列行為類似。系統不會將宣告資訊清單的廣播訊息排入佇列,應用程式也會自快取狀態移除,以便進行播送。
當應用程式結束快取狀態 (例如返回前景) 時,系統會傳送所有排入佇列的廣播訊息。某些廣播訊息的多個執行個體可以合併為單一廣播訊息。
應用程式只能終止自己的背景處理程序
自 Android 14 起,當應用程式呼叫 killBackgroundProcesses()
時,API 只能終止您自有應用程式的背景處理程序。
如果您傳入其他應用程式的套件名稱,此方法不會對該應用程式的背景處理程序產生影響,而且 Logcat 也會顯示以下訊息:
Invalid packageName: com.example.anotherapp
您的應用程式不應使用 killBackgroundProcesses()
API,或嘗試影響其他應用程式的處理程序生命週期,即使是在舊版 OS 上也是如此。Android 的設計是為了在背景作業中保留快取的應用程式,並且能夠在系統需要記憶體時自動終止這些應用程式。如果您的應用程式不小心關閉其他應用程式,可能會因為需要在稍後重新啟動這些應用程式 (比起恢復現有已快取的應用程式會耗用更多的資源),進而降低系統效能並增加電池用量。
安全性
可安裝的目標 API 級別下限
自 Android 14 起,無法安裝 targetSdkVersion
低於 23 的應用程式。要求應用程式符合這些最低目標 API 級別規定,可提升使用者的安全性和隱私權。
為了規避 Android 較新版本的安全性和隱私權保護措施,惡意軟體通常會鎖定舊版 API 級別。舉例來說,某些惡意軟體應用程式會使用 22 的 targetSdkVersion
,以避免受到 Android 6.0 Marshmallow (API 級別 23) 在 2015 年推出的執行階段權限模型。這項 Android 14 變更會讓惡意軟體更難躲過更嚴謹的安全性和隱私權措施。如果嘗試安裝以較低 API 級別為目標的應用程式,則將導致安裝失敗,Logcat 也會顯示以下訊息:
INSTALL_FAILED_DEPRECATED_SDK_VERSION: App package must target at least SDK version 23, but found 7
在升級至 Android 14 的裝置上,targetSdkVersion
低於 23 的所有應用程式均不會遭到移除。
如果您需要測試以舊版 API 級別為目標的應用程式,請使用下列 ADB 指令:
adb install --bypass-low-target-sdk-block FILENAME.apk
媒體擁有者的套件名稱可能會被遮蓋
您可以使用媒體儲存區查詢列有儲存特定媒體檔案應用程式的 OWNER_PACKAGE_NAME
資料欄。自 Android 14 版本起,除非符合下列至少一項條件,否則系統將遮蓋此值:
- 儲存媒體檔案的應用程式會具備一律可由其他應用程式瀏覽的套件名稱。
查詢媒體儲存區的應用程式會要求
QUERY_ALL_PACKAGES
權限。
進一步瞭解 Android 如何篩選套件的瀏覽權限,以保護隱私權。
使用者體驗
授予相片和影片的部分存取權
在 Android 14 中,當應用程式要求存取 Android 13 (API 級別 33) 所推出的任何視覺媒體時,使用者可授予相片和影片的部分存取權:READ_MEDIA_IMAGES
或 READ_MEDIA_VIDEO
。
新的對話方塊會顯示下列權限選項:
- 選取相片和影片:Android 14 的新功能。使用者選取可由應用程式使用的特定相片和影片。
- 全部允許:使用者授予程式庫完整權限,可存取裝置上的所有相片和影片。
- 不允許:使用者拒絕所有存取要求。
您可以宣告新的 READ_MEDIA_VISUAL_USER_SELECTED
權限,以便更妥善地處理這項變更。進一步瞭解如何在使用者授予媒體程式庫部分存取權的情況下提供支援。
安全的全螢幕意圖通知
在 Android 11 (API 級別 30) 版本中,任何應用程式可在手機鎖定時使用 Notification.Builder.setFullScreenIntent
傳送全螢幕意圖。您可以在 AndroidManifest 中宣告 USE_FULL_SCREEN_INTENT
權限,以便在安裝應用程式時自動授予這項權限。
全螢幕意圖通知是專為需要使用者立即處理的高度優先通知設計,例如:來電或使用者設定的鬧鐘。從 Android 14 開始,只有提供通話和鬧鐘功能的應用程式,才可以使用這項權限。凡是不符合此設定檔的任何應用程式,Google Play 商店都會撤銷預設的 USE_FULL_SCREEN_INTENT
權限。
在使用者更新至 Android 14 之前,這項權限在手機應用程式中仍會保持啟用狀態。使用者可選擇啟用或停用權限。
您可以使用新的 API NotificationManager.canUseFullScreenIntent
檢查應用程式是否具備此權限;如果沒有,應用程式可以使用新的意圖 ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT
啟動設定頁面,以供使用者授予權限。
針對使用者無法關閉通知的情況進行變更
如果您的應用程式會向使用者顯示無法關閉的前景通知,在 Android 14 中,該行為已變更為允許使用者關閉此類通知。
對於可透過設定 Notification.FLAG_ONGOING_EVENT
至 Notification.Builder#setOngoing(true)
或 NotificationCompat.Builder#setOngoing(true)
,進而防止使用者關閉前景通知的應用程式均一律套用此變更。FLAG_ONGOING_EVENT
的行為已變更,以便使用者可確實關閉此類通知。
但在下列情況下,使用者無法關閉這些類型的通知:
- 手機鎖定時
- 當使用者選取全部清除通知動作 (有助於避免不慎關閉通知)
此外,在下列情況中,這項新行為將不會套用至無法關閉的通知:
- 使用
MediaStyle
建立的通知 - 限於安全性和隱私權用途的政策
- 裝置政策控制器 (DPC) 與企業支援套件
以更清楚的方式顯示資料安全性資訊
為了加強使用者隱私,Android 14 會增加系統顯示您在 Play 管理中心表單中宣告的資訊地點數量。目前,使用者可以在 Google Play 應用程式商店資訊的資料安全性部分查看這項資訊。
建議您查看應用程式的位置資料分享政策,並撥冗為應用程式的 Google Play「資料安全性」專區進行妥善更新。
詳情請參閱這份指南,瞭解 Android 14 如何以更清楚的方式顯示資料安全性資訊。
無障礙設定
非線性字型縮放至 200%
自 Android 14 起,系統將支援高達 200% 的字型縮放倍數,為低視能使用者提供符合無障礙網頁內容規範 (WCAG)的額外無障礙選項。
如果您已經使用縮放像素 (sp) 單位來定義文字大小,則此異動可能不會對您的應用程式造成太大影響。然而,建議您 啟用最大字型大小 (200%) 執行使用者介面測試,以確保應用程式能在不影響可用性的情況下,適應更大的字型大小。