Android 17 平台包含可能對應用程式造成影響的行為變更。無論 targetSdkVersion 為何,凡是在 Android 17 上執行的應用程式,「一律」都會受到下列行為變更所影響。您必須測試自己的應用程式,並視需要進行修改,以便在適當情況下支援這些變更。
另請務必查看僅對指定 Android 17 為目標版本的應用程式造成影響的行為變更。
安全性
Android 17 包含下列裝置和應用程式安全性改善項目。
usesClearTraffic 淘汰計畫
我們計畫在日後推出的版本中淘汰 usesCleartextTraffic 元素。
如果應用程式需要建立未加密 (HTTP) 連線,請改用網路安全性設定檔,指定應用程式需要建立明文連線的網域。
請注意,網路安全性設定檔僅適用於 API 級別 24 以上版本。如果應用程式的最低 API 級別低於 24,您應該同時執行下列兩項操作:
- 將
usesCleartextTraffic屬性設為true - 使用網路設定檔
如果應用程式的最低 API 級別為 24 以上,您可以使用網路設定檔,不必設定 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。
如需更多資訊 (包括緩解策略),請參閱「背景音訊強化」。