Music/Audio App Development Guide
This guide explains the points you need to consider when developing an app in the Music/Audio category that runs on Pleos Connect. It guides the classification and segmentation criteria for Music/Audio category apps and policies to prevent user experience degradation when integrating with the media app library. This guide is applied as a review criterion when registering with the Pleos App Market.
Music/Audio App Category
Category Definition
The Music/Audio category includes apps that provide the following audio-centric services:
- Music streaming and playback
- Podcasts, audiobooks, and radio content provision
- Audio platforms intended for in-vehicle media playback
Category Registration Criteria
To register an app in the Pleos App Market Music/Audio category, the following requirements must be met:
- Audio content playback must be the main function of the app
- Provide UI/UX suitable for the driving environment
- Support background playback and integration with vehicle media controls
Category Mismatch Policy
- If additional features (community, shopping, etc.) are included, the suitability of the category is determined based on whether audio playback is the core function.
- Apps that provide music as a mere auxiliary function will be immediately rejected in the review.
Media App Library Integration
Apps that use Media Center can be automatically registered in the vehicle media app library. Apps that do not use Media Center are not shown in the media app library.Category Segmentation Policy for Media App Library Integration
In the vehicle environment, media app library exposure is a key user experience element. The media app library means the list of apps and content shown to users in the system media browser. Music/Audio apps must define subcategories by content type, and this classified information must integrate with the media app library so it connects to usage flows based on the media browser, voice commands, and steering wheel controls.
| Subcategory | Classification Principle |
|---|---|
| Music | Provides music content based on artist, album, and track Example: Music streaming service, local music player |
| Podcast | Provides voice content on an episode basis Includes subscription, latest episodes, and episode list structure |
| Audiobook | Book-based long-duration voice content Includes chapter-based navigation and playback position saving function |
| Radio | Real-time streaming or broadcast-based audio content Channel/station-centered navigation structure |
- If a single app corresponds to multiple subcategories, it is mandatory to separate exposure by content type in the media app library.
- If the subcategory classification is unclear, it may be a reason for rejection in the review.
Media App Library Integration Policy (Mandatory)
Music/Audio category apps must comply with the following policies:
- Provide a clear browsing structure by content type
- When integrating with the system media app library, it is essential to deliver subcategory (Music/Podcast/Audiobook/Radio) information
- The method of mixing all content into a single list may be restricted
Implementation of Media App Library Integration
Add category information to the manifest file. Set the android:appCategory attribute of the <application> element to "audio". For more information, refer to Add Android Automotive OS support to media apps.
<application
...
android:appCategory="audio" />
Music/Audio App Development Policy
All Music/Audio apps deployed in vehicles must use MBS (MediaBrowserService) for standard media integration with the vehicle system.
Scope
- Music streaming apps
- Podcast apps
- Audiobook apps
- Radio apps
- Other apps that play audio content
Mandatory Requirements
- The app must implement Android
MediaBrowserService(MBS). - The vehicle system uses MBS to browse content, check playback status, and control media.
- The app must be compatible with the standard media interface provided by the vehicle system.
- The app must provide playback status and control through Android
MediaSession.
Audio apps that do not implement MBS may be excluded from vehicle deployment and distribution targets.
Recommended Media Center Usage Policy
Media Center is an MBS-based development template. Using Media Center is recommended for Music/Audio app development. With Media Center, vehicle media integration becomes easier and integrated vehicle features such as automatic media app library registration, Tune Knob support, and Media button integration can be used. If Media Center is not used, equivalent features must be implemented separately by the app or some features may not be available.
| Feature Item | Media Center Used | Media Center Not Used |
|---|---|---|
| Steering wheel key support | Provided by default | Possible, but requires separate implementation (review may be rejected if not implemented) |
| Media app library registration | Supported | Not supported (not exposed in library) |
| Tune Knob support (next/previous track) | Supported | Not supported |
| Vehicle Media button integration | Supported | Not supported |
| Vehicle Mode button integration | Not supported | Not supported |
| Integration with vehicle media ecosystem | High | Limited |
| Additional development burden | Low | Separate implementation required per feature |
Steering Wheel Key Support Policy for Vehicle Media Apps
All media apps running in vehicles must support basic playback control through steering wheel keys. Basic playback control recommends Media Center integration, and one of the following two implementation methods must be applied.
Media Center integration
Apps must implement basic controls such as play, pause, stop, previous track, and next track through the vehicle Media Center.
Implementation using Android MediaBrowserService
If Media Center is not used, the app must support basic playback control through steering wheel keys based on Android MediaBrowserService.
- The app must register
MediaSessionCompatand implementMediaSessionCompat.Callback. - At minimum, the app must support the following:
- play, pause, stop, media ID-based playback, and search-based playback
- If applicable to content characteristics, the app should also support previous and next track navigation.
- Auto-play on app connection is prohibited. Playback must start based on an explicit user action or a system resume request. For details, refer to the Android Developers guide.
Media apps that do not support steering wheel key behavior or do not implement media session handling aligned with Google guidelines may be excluded from vehicle deployment or distribution targets.
Behavior Rules That Developers Must Implement
Auto-play Restriction Policy
- Even when the profile changes, audio must not start auto-playing. Playback must start only based on an explicit user action or a system resume request.
Focus Loss and Session Cleanup
- When
AUDIOFOCUS_LOSSis received (for example, when a game app starts), applystophandling or session deactivation logic so thatMediaSessiondoes not remain active. - A sample implementation is as follows.
private val audioFocusListener = AudioManager.OnAudioFocusChangeListener { focus ->
when (focus) {
AudioManager.AUDIOFOCUS_LOSS -> {
stopPlayback()
audioManager.abandonAudioFocusRequest(audioFocusRequest)
}
AudioManager.AUDIOFOCUS_LOSS_TRANSIENT,
AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK -> pausePlayback()
AudioManager.AUDIOFOCUS_GAIN -> resumePlayback()
}
}
- If a media app only calls
bind()/unbind(), it may not receiveonTaskRemoved(). To avoid this, callstartService()inonCreate()so the service enters a Started state. - Call
startForeground()inonStartCommand()and when playback starts. - In
onTaskRemoved(), execute in this order:stopMedia()→stopSelf()→super.onTaskRemoved(). Internal stop logic should run beforesuper.onTaskRemoved(). - During a three-finger gesture, the system can call
MediaSessionCompat.Callback.onStop(). WhenonStop()is received, the app should executeExoPlayer.stop().
Gleo AI Feature Integration Policy
Music/Audio apps running on Pleos Connect can use Gleo AI features.
Gleo AI is an AI agent that accompanies users on their journeys, communicates with them, and assists them. Using LLM-based AI and voice technologies, it understands the context of voice commands and conversations and provides the responses and actions needed to deliver a convenient and safe mobility experience.
When integrated with Gleo AI, the following capabilities are available:
- Voice features for track search and playback, such as “Play IU’s song in the Melon app.”
- In addition to track search, you can optionally provide about three to five additional voice features for other core app capabilities.
- Once the app passes review and is released on the Pleos App Market, users can start using those voice features right after installation.
To use Gleo AI voice search and control in your app, you must implement one of the following two approaches:
Gleo Interface Implementation
The Gleo Interface defines how Gleo AI and third-party apps interact with each other in the vehicle to process the user’s voice commands. To use the Gleo Interface, your app must implement functions that Gleo AI can invoke, and you must register a schema that defines how Gleo AI calls those functions.
For detailed steps on implementing the Gleo Interface, see the Gleo AI Integration Guide.
Implementation Based on Android Standard Media APIs
In this approach, Gleo AI controls music apps through MediaAgent. MediaAgent controls media apps based on the Android standard Media3 stack. For music apps built to comply with AndroidX Media3 and the standard AAOS media APIs, we are preparing a future update that will enable voice features without requiring you to implement a separate schema.
Minimum requirements for standard media compliance
To use Media3, the standard Android media control library, you must implement at least the following:
- Integrate
MediaSession/MediaLibraryService - Provide basic media control commands such as play, pause, next track, and previous track
- (When integrating
MediaLibraryService) provide search-related commands
MediaBrowserService is also supported for compatibility, but we recommend adopting Media3 as the current standard.
Requirements for search-based voice features
To use voice features such as track search, you must implement search in MediaLibraryService according to Media3. If you only expose MediaSession, basic playback control may work, but search-based voice features will be limited.
Review and Operation Criteria
Review Criteria
The review criteria for registering apps in the Pleos App Market Music/Audio category are as follows:
- Verify that the category and subcategory definitions are clear.
- Verify that the media app library integration structure is appropriate.
- Evaluate usability and safety in the vehicle environment.
Actions for Policy Violations
In case of policy violations, the following actions may be taken:
- Category mismatch: Request for modification or review rejection
- Undefined subcategory: Request for feature enhancement
- Repeated violations of the above: Restriction of app exposure or suspension of registration