從 Android 13 開始,系統 UI 中的媒體控制項包含操作按鈕和遠端播放的更新。這些變化支援手機和平板電腦上更精緻的媒體控制體驗,並提供跨裝置的無縫媒體傳輸。
媒體控制更新
本部分介紹 Android 13 中針對操作按鈕和遠端播放的媒體控制項的更新。
操作按鈕更改
為了確保用戶可以存取播放媒體的應用程式的豐富媒體控件,Android 13 媒體控制項上的操作按鈕源自PlaybackState
操作狀態。透過此更改,函數MediaDataManager#createActionsFromState
會根據PlaybackState
操作狀態產生操作按鈕資訊。這與其他 Android 平台(例如 Auto、Assistant 和 Wear)中媒體控制項的呈現方式一致。
相較之下,在 Android 12 中,媒體控制項上的操作按鈕由新增至MediaStyle
通知的通知操作決定。
有關操作按鈕更新的應用程式相容變更的摘要,請參閱StatusBarManager
。
遠端播放API
為了在各種介面上提供一致的媒體體驗,從 Android 13 開始,新增了新的系統 APINotification Notification#setRemotePlaybackInfo
以在媒體控制系統 UI 上標記媒體通知以進行遠端播放。此 API 允許發布通知的系統應用程式執行以下操作:
- 向媒體控制器上的預設輸出切換器提供源自遠端設備的媒體的資訊和功能。
- 如有必要,請更換輸出切換器功能。
使用此通知的系統應用程式必須具有MEDIA_CONTENT_CONTROL
權限。
Notification#setRemotePlaybackInfo
API 也增加了以下extras
來決定遠端播放裝置的名稱、圖示和意圖:
-
Notification#EXTRA_MEDIA_REMOTE_DEVICE
-
Notification#EXTRA_MEDIA_REMOTE_ICON
-
Notification#EXTRA_MEDIA_REMOTE_INTENT
利用此訊息,系統UI可以取代預設的輸出切換器晶片裝置訊息,並將用於遠端播放的媒體控制項新增至本機媒體控制項清單的末端。
實施媒體控制
OEM 必須了解預設行為的此更改,因為它會影響應用程式媒體控制項的產生方式。 OEM 還必須確保新系統 API 在其輸出切換器功能中適用。
OEM 不需要進行任何更改,並且可以使用 AOSP 中的預設實作。
遠端播放客製化
如果 OEM 具有發布遠端媒體播放通知的系統應用程序,則只要該應用程式已被授予MEDIA_CONTENT_CONTROL
權限,就可以選擇呼叫setRemotePlaybackInfo
來取得通知。然而,這不是必需的,合作夥伴可以選擇不自訂。
媒體控制驗證
若要測試系統 UI 中的媒體控制,請執行手動測試來驗證以下內容:
- 從應用程式播放媒體時,按鈕按預期運行。
- 輸出切換器顯示正確的設備資訊。
使用以下測試來驗證遠端播放 API:
-
NotificationManagerTest
中的 CTS 測試,例如testMediaStyleRemotePlayback_noPermission
和testMediaStyleRemotePlayback_hasPermission
。 -
com.android.systemui.media
下的單元測試。
請參閱新的CDD 要求[3.8.3.1/H-1-SR] 以取得建議。