從 Android 13 開始,系統 UI 中的媒體控件包含對操作按鈕和遠程播放的更新。這些更改支持在手機和平板電腦上獲得更精緻的媒體控制體驗,並提供跨設備的無縫媒體傳輸。
媒體控件更新
本部分介紹了 Android 13 中針對操作按鈕和遠程播放的媒體控件所做的更新。
操作按鈕更改
為確保用戶可以訪問用於播放媒體的應用程序的豐富媒體控件集,Android 13 媒體控件上的操作按鈕派生自PlaybackState
操作狀態。通過此更改,函數MediaDataManager#createActionsFromState
根據PlaybackState
操作狀態生成操作按鈕信息。這與媒體控件在其他 Android 平台(例如 Auto、Assistant 和 Wear)中的呈現方式一致。
相比之下,在 Android 12 中,媒體控件上的操作按鈕由添加到MediaStyle
通知的通知操作確定。
有關操作按鈕更新的應用程序兼容更改的摘要,請參閱StatusBarManager
。
遠程播放 API
為了在各種表面上提供有凝聚力的媒體體驗,從 Android 13 開始,添加了一個新的系統 API 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
有了這些信息,System UI 可以替換默認的輸出切換器芯片設備信息,並將用於遠程播放的媒體控件添加到本地媒體控件列表的末尾。
實施媒體控制
OEM 必須意識到對默認行為的這種更改,因為它會影響應用程序媒體控件的生成方式。 OEM 還必須確保新系統 API 在其輸出切換器功能中適用。
OEM 無需進行任何更改,並且可以使用 AOSP 中的默認實現。
自定義遠程播放
如果 OEM 具有發布遠程媒體播放通知的系統應用程序,則應用程序可以選擇調用setRemotePlaybackInfo
進行通知,只要它已被授予MEDIA_CONTENT_CONTROL
權限。但是,這不是必需的,合作夥伴可以選擇不自定義。
驗證媒體控制
要在系統 UI 中測試媒體控制,請運行手動測試以驗證以下內容:
- 從應用程序播放媒體時,按鈕按預期工作。
- 輸出切換器顯示正確的設備信息。
使用以下測試來驗證遠程回放 API:
-
NotificationManagerTest
中的 CTS 測試,例如testMediaStyleRemotePlayback_noPermission
和testMediaStyleRemotePlayback_hasPermission
。 -
com.android.systemui.media
下的單元測試。
有關建議,請參閱新的CDD 要求[3.8.3.1/H-1-SR]。