和先前版本一樣,Android 13 也包含可能影響 應用程式。下列行為變更僅適用於指定的應用程式 搭載 Android 13 以上版本。如果您的應用程式指定 Android 13 以上版本,則應 請視情況修改您的應用程式,以便支援這些行為。
請務必查看影響所有應用程式的行為變更清單 在 Android 13 中運作
隱私權
通知權限會影響前景服務外觀
如果使用者拒絕 通知權限、 使用者不會看到前景服務相關的通知 通知導覽匣。 不過,使用者仍會在 工作管理員, 偵測是否授予通知權限。
鄰近 Wi-Fi 裝置的新執行階段權限
在先前的 Android 版本中,使用者必須授予應用程式
ACCESS_FINE_LOCATION
敬上
以便完成一些常見的 Wi-Fi 用途。
因為使用者很難將位置存取權與 Wi-Fi 建立關聯
Android 13 (API 級別 33) 在
NEARBY_DEVICES
敬上
權限群組適用於管理裝置連線與附近存取權的應用程式
或是透過 Wi-Fi 連線這項權限
NEARBY_WIFI_DEVICES
、
可執行 Wi-Fi 用途,例如:
- 尋找或連線至附近的裝置,例如印表機或媒體投放裝置。
此工作流程允許應用程式完成下列工作:
- 從錶帶外接收 AP 資訊,例如透過 BLE。
- 透過 Wi-Fi Aware 探索及連線至裝置,並使用僅限區域的無線基地台連線。
- 透過 Wi-Fi Direct 探索裝置並與其連線。
- 連線至已知的 SSID,例如汽車或智慧住宅裝置。
- 啟動僅限本機的無線基地台。
- 範圍與鄰近的 Wi-Fi 感知裝置。
只要應用程式不會透過 Wi-Fi 取得實際位置資訊
API 會在以下情況下要求 NEARBY_WIFI_DEVICES
,而非 ACCESS_FINE_LOCATION
指定 Android 13 以上版本並使用 Wi-Fi API。當您宣告
NEARBY_WIFI_DEVICES
權限,強烈建議聲明應用程式絕不會
從 Wi-Fi API 取得實際位置資訊。方法是將
android:usesPermissionFlags
屬性設為 neverForLocation
。這項程序
就像您在 Android 12 (API 級別 31) 以上版本中執行的一樣
聲明不得將藍牙裝置資訊用於以下目的:
位置。
進一步瞭解如何 要求存取鄰近 Wi-Fi 裝置的權限。
精細媒體權限
如果您的應用程式指定 Android 13 以上版本為目標,
存取其他應用程式內建的媒體檔案
已建立,您必須
要求下列一或多項精細媒體權限,而非
READ_EXTERNAL_STORAGE
敬上
權限:
媒體類型 | 要求權限 |
---|---|
圖片和相片 | READ_MEDIA_IMAGES |
影片 | READ_MEDIA_VIDEO |
音訊檔案 | READ_MEDIA_AUDIO |
請先驗證使用者是否已授予相關權限,才能存取其他應用程式的媒體檔案 取得適當的應用程式精細媒體權限
圖 1 顯示要求 READ_MEDIA_AUDIO
權限的應用程式。
如果您同時要求 READ_MEDIA_IMAGES
權限和
同時只有一項系統權限,READ_MEDIA_VIDEO
權限
對話方塊。
如果您的應用程式先前授予
READ_EXTERNAL_STORAGE
敬上
然後授予所有必要的 READ_MEDIA_*
權限
在升級期間自動執行您可以使用下列 ADB 指令查看
已升級的權限:
adb shell cmd appops get --uid PACKAGE_NAME
如要在背景使用人體感應器,必須取得新權限
Android 13 介紹「使用時」的概念存取 人體感測器,例如心率、溫度和血氧比例。這個 存取模式與系統針對位置 在 Android 10 (API 級別 29) 中)。
如果您的應用程式指定 Android 13 版本為目標,且需要人體感應器存取權
為了在背景執行時請求使用者所需的資訊,您必須宣告新的
BODY_SENSORS_BACKGROUND
敬上
除了現有的
BODY_SENSORS
。
權限。
效能與電池
電池資源使用率
如果使用者將應用程式放在
「限制」狀態
背景電池用量
應用程式指定 Android 13 版本時,系統不會將
BOOT_COMPLETED
或 LOCKED_BOOT_COMPLETED
播送到
應用程式因其他原因啟動
使用者體驗
媒體控制項衍生自「PlaybackState
」
針對指定 Android 13 (API 級別 33) 以上版本的應用程式,系統會衍生出
媒體控制選項:
PlaybackState
動作。這個
讓系統能顯示功能更豐富的控制項
而且在手機和平板電腦之間保持一致
控制項在其他 Android 平台上顯示,例如 Android Auto
Android TV。
圖 2 舉例說明這在手機和平板電腦上呈現的外觀。 。
在 Android 13 之前,系統會透過 MediaStyle
顯示最多五項動作
通知 (依照新增的順序)。
在精簡模式 (例如收合的快速設定) 中,最高
三個使用 setShowActionsInCompactView()
指定的動作
。
從 Android 13 開始,系統會根據最多五個動作按鈕顯示
PlaybackState
,如下表所述。在精簡模式下,只有前三個
動作版位。指定 Android 13 (或不含 Android 13 版本) 的應用程式
不包含 PlaybackState
,系統將根據
在 MediaStyle
通知中新增的 Action
清單,如下所述
。
版位 | 動作 | 條件 |
---|---|---|
1 | 播放 |
PlaybackState 目前的狀態為下列其中一種:
|
載入旋轉圖示 |
PlaybackState 目前的狀態為下列其中一種:
|
|
暫停 | PlaybackState 目前的狀態並非以上皆是。 |
|
2 | 上一頁 | PlaybackState 動作包含 ACTION_SKIP_TO_PREVIOUS 。 |
自訂 | PlaybackState 動作不含 ACTION_SKIP_TO_PREVIOUS ,且 PlaybackState 個自訂動作包含尚未放置的自訂動作。 |
|
空白 | PlaybackState 「extras」包含鍵 SESSION_EXTRAS_KEY_SLOT_RESERVATION_SKIP_TO_PREV 的 true 布林值。 |
|
3 | 繼續 | PlaybackState 動作包含 ACTION_SKIP_TO_NEXT 。 |
自訂 | PlaybackState 動作不含 ACTION_SKIP_TO_NEXT ,且 PlaybackState 個自訂動作包含尚未放置的自訂動作。 |
|
空白 | PlaybackState 「extras」包含鍵 SESSION_EXTRAS_KEY_SLOT_RESERVATION_SKIP_TO_NEXT 的 true 布林值。 |
|
4 | 自訂 | PlaybackState 自訂動作包含尚未加入的自訂動作。 |
5 | 自訂 | PlaybackState 自訂動作包含尚未加入的自訂動作。 |
自訂動作的排列順序取決於加入
PlaybackState
。
已自動將應用程式顏色主題套用至 WebView 內容
針對指定 Android 13 (API 級別 33) 以上版本的應用程式,
setForceDark()
敬上
方法已淘汰,因此如果呼叫 方法,會產生免人工管理的結果。
WebView 現在一律會將
根據應用程式的主題屬性,執行媒體查詢 prefers-color-scheme
。
isLightTheme
。在其他
字詞,如果 isLightTheme
為 true
或未指定,則 prefers-color-scheme
會是
light
;否則為 dark
。這項行為意味著
在下列情況下,系統會自動套用淺色或深色樣式,以符合應用程式的主題
內容都支援。
對大多數應用程式而言,新行為應套用適當的應用程式樣式 但是,您必須測試應用程式,確保 可能已手動控制深色模式設定
如果您仍須自訂應用程式的色彩主題行為,請使用
setAlgorithmicDarkeningAllowed()
敬上
方法。為了提供與 Android 舊版本的回溯相容性,
建議您使用對等的
setAlgorithmicDarkeningAllowed()
敬上
方法。
請參閱該方法的說明文件,進一步瞭解您可以執行哪些動作
會遇到哪些情況,取決於應用程式的
targetSdkVersion
和主題
可以管理叢集設定,像是節點
資源調度、安全性和其他預先設定項目
連線能力
BluetoothAdapter#enable() 和 BluetoothAdapter#disable()已淘汰
針對指定 Android 13 (API 級別 33) 以上版本的應用程式,
BluetoothAdapter#enable()
和
BluetoothAdapter#disable()
方法已淘汰,而且一律會
傳回 false
。
下列類型的應用程式不受這些變更影響:
- 裝置擁有者應用程式
- 設定檔擁有者應用程式
- 系統應用程式
Google Play 服務
廣告 ID 必須具備權限
使用 Google Play 服務廣告的應用程式
ID 和
您必須指定 Android 13 (API 級別 33) 以上版本。
在應用程式的AD_ID
資訊清單檔案如下所示:
<manifest ...>
<!-- Required only if your app targets Android 13 or higher. -->
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
<application ...>
...
</application>
</manifest>
如果您的應用程式在指定 Android 13 或 較高的值,系統會自動移除廣告 ID,並以字串取代 零時分。
如果應用程式所使用的 SDK,宣告了程式庫的 AD_ID
權限
然後,權限會與應用程式的資訊清單檔案合併
預設值。在此情況下,您不需要在應用程式的
資訊清單檔案
詳情請參閱「廣告 ID (位於 也可以參閱 Play 管理中心說明的資訊
更新非 SDK 限制
Android 13 提供最新的受限制非 SDK 清單 介面是以與 Android 開發人員合作為基礎,並採用 內部測試。我們會盡可能確保公開的替代方案 ,然後再限制非 SDK 介面使用
如果您的應用程式並不是以 Android 13 為目標版本,則此處可能有部分變更 可能無法立即對您造成影響不過,雖然您目前可以使用 非 SDK 介面 (視應用程式的目標 API 而定) level)、 使用任何非 SDK 方法或欄位,都有很高的風險 應用程式。
如果不確定應用程式是否使用非 SDK 介面,可以測試 應用程式 讓我們一探究竟。如果您的應用程式仰賴非 SDK 介面,建議您著手規劃 轉換至 SDK 替代方案我們瞭解有些應用程式 使用非 SDK 介面的有效用途。如果您找不到替代選項 針對應用程式中的某個功能使用非 SDK 介面,則應要求 新的公用 API
如要進一步瞭解此 Android 版本中的變更,請參閱 更新 Android 13 的非 SDK 介面限制。 如要進一步瞭解非 SDK 介面的一般資訊,請參閱非 SDK 的相關限制 介面。