MediaSessionManager

public final class MediaSessionManager
extends Object

java.lang.Object
   ↳ android.media.session.MediaSessionManager


Provides support for interacting with media sessions that applications have published to express their ongoing media playback state.

Instances of this class must be obtained using Context.getSystemService(Class) with the argument MediaSessionManager.class or Context.getSystemService(String) with the argument Context.MEDIA_SESSION_SERVICE.

Summary

Nested classes

interface MediaSessionManager.OnActiveSessionsChangedListener

Listens for changes to the list of active sessions. 

class MediaSessionManager.RemoteUserInfo

Information of a remote user of MediaSession or MediaBrowserService

Public methods

void addOnActiveSessionsChangedListener(MediaSessionManager.OnActiveSessionsChangedListener sessionListener, ComponentName notificationListener)

Add a listener to be notified when the list of active sessions changes.This requires the android.Manifest.permission.MEDIA_CONTENT_CONTROL permission be held by the calling app.

void addOnActiveSessionsChangedListener(MediaSessionManager.OnActiveSessionsChangedListener sessionListener, ComponentName notificationListener, Handler handler)

Add a listener to be notified when the list of active sessions changes.This requires the android.Manifest.permission.MEDIA_CONTENT_CONTROL permission be held by the calling app.

List<MediaController> getActiveSessions(ComponentName notificationListener)

Get a list of controllers for all ongoing sessions.

boolean isTrustedForMediaControl(MediaSessionManager.RemoteUserInfo userInfo)

Checks whether the remote user is a trusted app.

void removeOnActiveSessionsChangedListener(MediaSessionManager.OnActiveSessionsChangedListener listener)

Stop receiving active sessions updates on the specified listener.

Inherited methods

Public methods

addOnActiveSessionsChangedListener

added in API level 21
public void addOnActiveSessionsChangedListener (MediaSessionManager.OnActiveSessionsChangedListener sessionListener, 
                ComponentName notificationListener)

Add a listener to be notified when the list of active sessions changes.This requires the android.Manifest.permission.MEDIA_CONTENT_CONTROL permission be held by the calling app. You may also retrieve this list if your app is an enabled notification listener using the NotificationListenerService APIs, in which case you must pass the ComponentName of your enabled listener. Updates will be posted to the thread that registered the listener.

Parameters
sessionListener MediaSessionManager.OnActiveSessionsChangedListener: The listener to add.

This value must never be null.

notificationListener ComponentName: The enabled notification listener component. May be null.

addOnActiveSessionsChangedListener

added in API level 21
public void addOnActiveSessionsChangedListener (MediaSessionManager.OnActiveSessionsChangedListener sessionListener, 
                ComponentName notificationListener, 
                Handler handler)

Add a listener to be notified when the list of active sessions changes.This requires the android.Manifest.permission.MEDIA_CONTENT_CONTROL permission be held by the calling app. You may also retrieve this list if your app is an enabled notification listener using the NotificationListenerService APIs, in which case you must pass the ComponentName of your enabled listener. Updates will be posted to the handler specified or to the caller's thread if the handler is null.

Parameters
sessionListener MediaSessionManager.OnActiveSessionsChangedListener: The listener to add.

This value must never be null.

notificationListener ComponentName: The enabled notification listener component. May be null.

handler Handler: The handler to post events to.

This value may be null.

getActiveSessions

added in API level 21
public List<MediaController> getActiveSessions (ComponentName notificationListener)

Get a list of controllers for all ongoing sessions. The controllers will be provided in priority order with the most important controller at index 0.

This requires the android.Manifest.permission.MEDIA_CONTENT_CONTROL permission be held by the calling app. You may also retrieve this list if your app is an enabled notification listener using the NotificationListenerService APIs, in which case you must pass the ComponentName of your enabled listener.

Parameters
notificationListener ComponentName: The enabled notification listener component. May be null.

Returns
List<MediaController> A list of controllers for ongoing sessions.

This value will never be null.

isTrustedForMediaControl

added in API level 28
public boolean isTrustedForMediaControl (MediaSessionManager.RemoteUserInfo userInfo)

Checks whether the remote user is a trusted app.

An app is trusted if the app holds the android.Manifest.permission.MEDIA_CONTENT_CONTROL permission or has an enabled notification listener.

Parameters
userInfo MediaSessionManager.RemoteUserInfo: The remote user info from either MediaSession.getCurrentControllerInfo() or MediaBrowserService.getCurrentBrowserInfo().

This value must never be null.

Returns
boolean true if the remote user is trusted and its package name matches with the UID. false otherwise.

removeOnActiveSessionsChangedListener

added in API level 21
public void removeOnActiveSessionsChangedListener (MediaSessionManager.OnActiveSessionsChangedListener listener)

Stop receiving active sessions updates on the specified listener.

Parameters
listener MediaSessionManager.OnActiveSessionsChangedListener: The listener to remove.

This value must never be null.