Overview

Media provides a platform on which to build media apps that provide safe, seamless, and connected infotainment experiences in every Android-enabled car. Media is an Android system application designed to provide a Distraction Optimized (DO) playback and browse experience for media apps. A fully functional implementation of Media is included with Android Open Source Project (AOSP).

Media screens

Figure 1. Media screens

To learn about Media, see the following articles:

  • System Components and User Flows. See this article to learn more about the components that interact with Media, as well as the most common user flows.
  • Implementing Radio with Media. Read how to integrate the Radio UI with Media to provide enable users to interact with media sources and radio as if they were a single application.
  • Customizing Media. Learn how to work with styles and assets defined at different levels in the AOSP structure.

Terminology

These terms are used:

Term Description
Media Source An Android application that implements the Android MediaBrowserService API to expose playback control and browsing of its catalog of media items.
Media Item

An element in the Media Source catalog. Media items can be either:

  • Playable Media Items. Audio segments that can be played by the system such as songs, chapters of books, and episodes of podcasts
  • Browsable Media Items. Organizational elements used to group playable or other browseable media items such as song categories, a recent songs folder, as well as podcasts and playable media items sorted by artist, author, or audience.

Media features

Media provides these features.

While Driving While Parked

Playback control.

  • Presentation of currently playing media item (for example, a song), including title, album art, duration, description, and current play position.

  • Execution of standard media actions (for example, play, stop, pause, and skip forward).

  • Execution of custom media actions (custom actions provided by each media source).

  • Presentation of the playback queue, if provided by the media app.

Catalog browse.

  • Display of top-level categories.

  • Drill down into browse-able media items (for example, folders).

  • Selection of playable media items (for example, songs) including title, album art, and indicators. For example, explicit content and downloaded content.

Everything listed under "While Driving" as well as:

  • Sign-in. For those media sources that require sign-in, it should be possible to start the sign in flow directly from Media.

  • Settings. Media source can display a settings UI.

  • Search, with keyboard. Users can perform a text search on Media.

Tasks

This table describes the tasks of each party.

Car Manufacturers (OEMs) Google App Developers
  • Build a fully-compliant Android CDD infotainment system with Android Automotive.
  • Fulfill all expectations of MediaSession and Browser APIs and the interoperability with Media:
    • Respect browse structure.
    • Respect custom actions.
    • Delegate to the app for sign-in, settings, and so on.
    • Respect the app branding elements explicitly supported by the APIs. For example, the app name.
  • Define and evolve Media APIs.
  • Provide Media implementation in AOSP.
  • Define app review process for publishing of media apps on Play Store.
  • Provide documentation for elements such as APIs, customizations, review, and certification processes
  • Implement Media APIs:
    • Provide overall media browse structure with appropriate content.
    • Provide custom actions as appropriate.
    • Make playback states available to the system.
    • Provide branding elements, such as app name.
  • Implement the sign-in, sign-up, settings, and error resolution flows, as needed.
  • Build and publish car APKs to the Play Store.

Customization guidelines

The Media implementation included in AOSP uses Car UI Library to enable customization and provides a base theme and structure that can be adopted as is or modified according to the following restrictions. The following table describes OEM responsibilities regarding Media customization.

Media Customization Description

SHOULD

Adjust overall theme and styling, including color pallette and sizing.

MAY

Modify the high-level structure of Media (for example, tab placement).

MUST NOT

Modify Media API contracts, including app branding:

  • MediaSession and MediaBrowser interoperability
  • Media source name, icon

Modify information architecture of:

  • Playback
  • Browse
  • Search