通过 Media 实现无线广播

无线广播 UI 以独立应用的形式实现。有关如何将无线广播 UI 集成到无线广播硬件的说明,请参阅实现无线广播

以下部分介绍了如何将无线广播 UI 与 Media 集成,从而为用户提供无缝体验,使用户能够像使用单个应用一样与媒体来源和无线广播互动。

媒体来源切换用户流程

下图说明了无线广播和 Media 的参考实现如何实现应用切换用户流程。

Media source switching user flow

图 1. 媒体来源切换用户流程

为了在无线广播和 Media 中的其他应用之间提供无缝过渡,car-media-common 库定义了可用于启动媒体来源选择器的 Android intent。在 AOSP 中,此选择器在应用启动器中实现,呈现用于启动应用的相同 UI,但已过滤为仅显示媒体来源。

OEM 可以选择按原样采用当前的应用启动器实现,或实现自定义媒体来源选择器。

选择器可以在两种模式下运行

  • 正常流程。使用选择器后,所选来源将显示在 Media 中,以便用户可以浏览其内容。
  • 作为开关。选择器用于切换来源,但媒体不会显示给用户。主页上的“选择器”图标就是这种情况。选择来源后,系统会向用户显示最近的上一个屏幕(在本例中为主页)。

用于在媒体来源之间切换的 intent 可以从 MediaSource#getSourceSelectorIntent() 方法中获取,该方法接受一个 popup 布尔值,该布尔值返回一个 intent,用于启动上述每个流程。

实际 intent 在 packages/apps/Car/libs/car-media-common/res/values/config.xml 中定义。要自定义此配置,请使用构建时叠加层。

替换无线广播应用

鉴于无线广播应用实现了 Media Browse 和 Media Session,无线广播会显示在应用启动器中。为了防止用户点击图标时启动 Media,需要两个元素。无线广播必须

  • 具有启动器 activity。
  • 声明为自定义来源。为此,请将组件名称添加到 car-media-common/res/values/config.xml 中的 custom_media_packages 键。

UX 驾驶限制

Media 必须遵守所有 UX 驾驶分心限制。为此,Media 必须监听 CarUXRestrictionManager 并实施其所有政策。