Stay organized with collections
Save and categorize content based on your preferences.
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 2025-03-13 UTC.
[null,null,["Last updated 2025-03-13 UTC."],[],[],null,["# android.media.session\n\nAdded in [API level 21](/guide/topics/manifest/uses-sdk-element#ApiLevels) \n\nandroid.media.session\n=====================\n\n*** ** * ** ***\n\n[Kotlin](/reference/kotlin/android/media/session/package-summary \"View this page in Kotlin\") \\|Java\n\nInterfaces\n----------\n\n|---------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|\n| [MediaSessionManager.OnActiveSessionsChangedListener](/reference/android/media/session/MediaSessionManager.OnActiveSessionsChangedListener) | Listens for changes to the list of active sessions. |\n| [MediaSessionManager.OnMediaKeyEventSessionChangedListener](/reference/android/media/session/MediaSessionManager.OnMediaKeyEventSessionChangedListener) | Listener to receive changes in the media key event session, which would receive a media key event unless specified. |\n| [MediaSessionManager.OnSession2TokensChangedListener](/reference/android/media/session/MediaSessionManager.OnSession2TokensChangedListener) | Listens for changes to the [MediaSessionManager.getSession2Tokens()](/reference/android/media/session/MediaSessionManager#getSession2Tokens()). |\n\nClasses\n-------\n\n|-----------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [MediaController](/reference/android/media/session/MediaController) | Allows an app to interact with an ongoing media session. |\n| [MediaController.Callback](/reference/android/media/session/MediaController.Callback) | Callback for receiving updates from the session. |\n| [MediaController.PlaybackInfo](/reference/android/media/session/MediaController.PlaybackInfo) | Holds information about the current playback and how audio is handled for this session. |\n| [MediaController.TransportControls](/reference/android/media/session/MediaController.TransportControls) | Interface for controlling media playback on a session. |\n| [MediaSession](/reference/android/media/session/MediaSession) | Allows interaction with media controllers, volume keys, media buttons, and transport controls. |\n| [MediaSession.Callback](/reference/android/media/session/MediaSession.Callback) | Receives media buttons, transport controls, and commands from controllers and the system. |\n| [MediaSession.QueueItem](/reference/android/media/session/MediaSession.QueueItem) | A single item that is part of the play queue. |\n| [MediaSession.Token](/reference/android/media/session/MediaSession.Token) | Represents an ongoing session. |\n| [MediaSessionManager](/reference/android/media/session/MediaSessionManager) | Provides support for interacting with [media sessions](/reference/android/media/session/MediaSession) that applications have published to express their ongoing media playback state. |\n| [MediaSessionManager.RemoteUserInfo](/reference/android/media/session/MediaSessionManager.RemoteUserInfo) | Information of a remote user of [MediaSession](/reference/android/media/session/MediaSession) or [MediaBrowserService](/reference/android/service/media/MediaBrowserService). |\n| [PlaybackState](/reference/android/media/session/PlaybackState) | Playback state for a [MediaSession](/reference/android/media/session/MediaSession). |\n| [PlaybackState.Builder](/reference/android/media/session/PlaybackState.Builder) | Builder for [PlaybackState](/reference/android/media/session/PlaybackState) objects. |\n| [PlaybackState.CustomAction](/reference/android/media/session/PlaybackState.CustomAction) | [CustomActions](/reference/android/media/session/PlaybackState.CustomAction) can be used to extend the capabilities of the standard transport controls by exposing app specific actions to [MediaControllers](/reference/android/media/session/MediaController). |\n| [PlaybackState.CustomAction.Builder](/reference/android/media/session/PlaybackState.CustomAction.Builder) | Builder for [CustomAction](/reference/android/media/session/PlaybackState.CustomAction) objects. |\n\n-\n\n Interfaces\n ----------\n\n - [MediaSessionManager.OnActiveSessionsChangedListener](/reference/android/media/session/MediaSessionManager.OnActiveSessionsChangedListener)\n - [MediaSessionManager.OnMediaKeyEventSessionChangedListener](/reference/android/media/session/MediaSessionManager.OnMediaKeyEventSessionChangedListener)\n - [MediaSessionManager.OnSession2TokensChangedListener](/reference/android/media/session/MediaSessionManager.OnSession2TokensChangedListener)\n-\n\n Classes\n -------\n\n - [MediaController](/reference/android/media/session/MediaController)\n - [MediaController.Callback](/reference/android/media/session/MediaController.Callback)\n - [MediaController.PlaybackInfo](/reference/android/media/session/MediaController.PlaybackInfo)\n - [MediaController.TransportControls](/reference/android/media/session/MediaController.TransportControls)\n - [MediaSession](/reference/android/media/session/MediaSession)\n - [MediaSession.Callback](/reference/android/media/session/MediaSession.Callback)\n - [MediaSession.QueueItem](/reference/android/media/session/MediaSession.QueueItem)\n - [MediaSession.Token](/reference/android/media/session/MediaSession.Token)\n - [MediaSessionManager](/reference/android/media/session/MediaSessionManager)\n - [MediaSessionManager.RemoteUserInfo](/reference/android/media/session/MediaSessionManager.RemoteUserInfo)\n - [PlaybackState](/reference/android/media/session/PlaybackState)\n - [PlaybackState.Builder](/reference/android/media/session/PlaybackState.Builder)\n - [PlaybackState.CustomAction](/reference/android/media/session/PlaybackState.CustomAction)\n - [PlaybackState.CustomAction.Builder](/reference/android/media/session/PlaybackState.CustomAction.Builder)"]]