Skip to main content

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
Apps where video is the main function are not included in this category.

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.

SubcategoryClassification Principle
MusicProvides music content based on artist, album, and track
Example: Music streaming service, local music player
PodcastProvides voice content on an episode basis
Includes subscription, latest episodes, and episode list structure
AudiobookBook-based long-duration voice content
Includes chapter-based navigation and playback position saving function
RadioReal-time streaming or broadcast-based audio content
Channel/station-centered navigation structure
Handling of Composite Content Apps
  • 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.

AndroidManifest.xml
<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.
Criteria for exclusion from deployment

Audio apps that do not implement MBS may be excluded from vehicle deployment and distribution targets.

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 ItemMedia Center UsedMedia Center Not Used
Steering wheel key supportProvided by defaultPossible, but requires separate implementation (review may be rejected if not implemented)
Media app library registrationSupportedNot supported (not exposed in library)
Tune Knob support (next/previous track)SupportedNot supported
Vehicle Media button integrationSupportedNot supported
Vehicle Mode button integrationNot supportedNot supported
Integration with vehicle media ecosystemHighLimited
Additional development burdenLowSeparate 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.

  1. Media Center integration
  2. Implementation using Android MediaBrowserService

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 MediaSessionCompat and implement MediaSessionCompat.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.
Criteria for exclusion from deployment

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_LOSS is received (for example, when a game app starts), apply stop handling or session deactivation logic so that MediaSession does 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 receive onTaskRemoved(). To avoid this, call startService() in onCreate() so the service enters a Started state.
  • Call startForeground() in onStartCommand() and when playback starts.
  • In onTaskRemoved(), execute in this order: stopMedia()stopSelf()super.onTaskRemoved(). Internal stop logic should run before super.onTaskRemoved().
  • During a three-finger gesture, the system can call MediaSessionCompat.Callback.onStop(). When onStop() is received, the app should execute ExoPlayer.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:

  1. Implement the Gleo Interface
  2. Implement using the Android standard media APIs

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.

Gleo AI Integration Guide

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