Overview
Stay organized with collections
Save and categorize content based on your preferences.
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).
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 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:
|
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2024-08-28 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Missing the information I need"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Too complicated / too many steps"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Out of date"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Samples / code issue"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Other"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Easy to understand"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Solved my problem"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Other"
}]
{"lastModified": "Last updated 2024-08-28 UTC."}
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-08-28 UTC."]]