系统界面中的媒体控件

从 Android 13 开始,系统界面中的媒体控件包含对操作按钮和远程播放的更新。这些更改支持在手机和平板电脑上实现更精细的媒体控制体验,并提供跨设备的无缝媒体转接。

媒体控件更新

本部分介绍了 Android 13 中针对操作按钮和远程播放的媒体控件更新。

操作按钮更改

为了确保用户可以使用众多媒体控件来操控媒体播放应用,Android 13 媒体控件上的操作按钮衍生自 PlaybackState 操作状态。此次更改后,函数 MediaDataManager#createActionsFromState 会根据 PlaybackState 操作状态生成操作按钮信息。这与汽车、Google 助理和 Wear 等其他 Android 平台上的媒体控件的呈现方式一致。

相比之下,在 Android 12 中,媒体控件上的操作按钮由添加到 MediaStyle 通知的通知操作决定。

如需查看操作按钮更新的应用兼容更改摘要,请参阅 StatusBarManager

远程播放 API

为了在各种平台上提供一致的媒体体验,从 Android 13 开始,添加了新的系统 API Notification#setRemotePlaybackInfo,用于在媒体控件系统界面中标记媒体通知以进行远程播放。借助此 API,发布通知的系统应用可以执行以下操作:

  • 将来自远程设备的媒体和功能信息提供给媒体控件上的默认输出切换器。
  • 更换输出切换器功能(如有必要)。

使用此通知的系统应用必须具有 MEDIA_CONTENT_CONTROL 权限。

Notification#setRemotePlaybackInfo API 还添加了以下 extras,以确定远程播放设备的名称、图标和 intent:

  • Notification#EXTRA_MEDIA_REMOTE_DEVICE
  • Notification#EXTRA_MEDIA_REMOTE_ICON
  • Notification#EXTRA_MEDIA_REMOTE_INTENT

利用这些信息,系统界面可以替换默认的输出切换器条状标签设备信息,并将用于远程播放的媒体控件添加到本地媒体控件列表的末尾。

媒体控件的实现

OEM 必须了解对默认行为的这一更改,因为这会影响为应用生成媒体控件的方式。此外,OEM 还必须确保新的系统 API 在其输出切换器功能中正常运行。

OEM 无需进行任何更改,并且可以使用 AOSP 中的默认实现

远程播放的自定义

如果 OEM 有一个可发布远程媒体播放通知的系统应用,则该应用可以针对通知选择性调用 setRemotePlaybackInfo,前提是该应用已被授予 MEDIA_CONTENT_CONTROL 权限。不过,这不是一项强制性要求,合作伙伴可以选择不进行自定义。

媒体控件的验证

如需在系统界面中测试媒体控件,请运行手动测试以验证以下内容:

  • 从应用中播放媒体时,按钮能正常运行。
  • 输出切换器会显示正确的设备信息。

使用以下测试来验证远程播放 API:

如需查看建议,请参阅新的 CDD 要求 [3.8.3.1/H-1-SR]。