Android 17 平台包含可能對應用程式造成影響的行為變更。無論 targetSdkVersion 為何,凡是在 Android 17 上執行的應用程式,「一律」都會受到下列行為變更所影響。您必須測試自己的應用程式,並視需要進行修改,以便在適當情況下支援這些變更。
另請務必查看僅對指定 Android 17 為目標版本的應用程式造成影響的行為變更。
安全性
Android 17 包含下列裝置和應用程式安全性改善項目。
usesClearTraffic 淘汰計畫
In a future release, we plan to deprecate the usesCleartextTraffic element.
Apps that need to make unencrypted (HTTP) connections should migrate to
using a network security configuration file, which lets you
specify which domains your app needs to make cleartext connections to.
Be aware that network security configuration files are only supported on API levels 24 and higher. If your app has a minimum API level lower than 24, you should do both of the following:
- Set the
usesCleartextTrafficattribute totrue - Use a network configuration file
If your app's minimum API level is 24 or higher, you can use a network
configuration file and you don't need to set usesCleartextTraffic.
限制隱含 URI 授權
目前,如果應用程式啟動的意圖含有動作 Send、SendMultiple 或 ImageCapture 的 URI,系統會自動授予目標應用程式讀取和寫入 URI 的權限。我們計畫在 Android 18 中變更這項行為。因此,建議應用程式明確授予相關 URI 權限,而非依賴系統授予權限。
使用者體驗和系統 UI
Android 17 包含下列異動,目的是為了打造更一致、直覺的使用者體驗。
裝置旋轉後自動恢復預設的 IME 版面空間
從 Android 17 開始,如果裝置設定變更 (例如旋轉) 並非由應用程式本身處理,系統就不會還原先前的輸入法編輯器瀏覽權限。
如果應用程式發生未處理的設定變更,且變更後需要顯示鍵盤,您必須明確提出要求。您可以透過下列方式提出要求:
- 將
android:windowSoftInputMode屬性設為stateAlwaysVisible。 - 在活動的
onCreate()方法中,以程式輔助方式要求顯示軟鍵盤,或新增onConfigurationChanged()方法。
媒體
Android 17 包含下列媒體行為變更。
背景音訊強化
從 Android 17 開始,音訊架構會強制限制背景音訊互動,包括音訊播放、音訊焦點要求和音量變更 API,確保這些變更是由使用者刻意啟動。
如果應用程式嘗試在無效的生命週期呼叫音訊 API,音訊播放和音量變更 API 會無聲無息地失敗,不會擲回例外狀況或提供失敗訊息。音訊焦點 API 失敗,結果代碼為 AUDIOFOCUS_REQUEST_FAILED。
如需更多資訊 (包括緩解策略),請參閱「背景音訊強化」。