MediaLibraryService

public abstract class MediaLibraryService
extends MediaSessionService

java.lang.Object
   ↳ android.content.Context
     ↳ android.content.ContextWrapper
       ↳ android.app.Service
         ↳ androidx.media2.session.MediaSessionService
           ↳ androidx.media2.session.MediaLibraryService


Base class for media library services, which is the service containing MediaLibraryService.MediaLibrarySession.

Media library services enable applications to browse media content provided by an application and ask the application to start playing it. They may also be used to control content that is already playing by way of a MediaSession.

When extending this class, also add the following to your AndroidManifest.xml.

 <service android:name="component_name_of_your_implementation" >
   <intent-filter>
     <action android:name="androidx.media2.session.MediaLibraryService" />
   </intent-filter>
 </service>

You may also declare

android.media.browse.MediaBrowserService
for compatibility with MediaBrowserCompat. This service can handle it automatically.

Summary

Nested classes

class MediaLibraryService.LibraryParams

Contains information that the library service needs to send to the client. 

class MediaLibraryService.MediaLibrarySession

Session for the MediaLibraryService

Constants

String SERVICE_INTERFACE

The Intent that must be declared as handled by the service.

Inherited constants

Public constructors

MediaLibraryService()

Public methods

IBinder onBind(Intent intent)

Default implementation for MediaSessionService to handle incoming binding request.

abstract MediaLibraryService.MediaLibrarySession onGetSession(MediaSession.ControllerInfo controllerInfo)

Called when a MediaController is created with the this service's SessionToken.

Inherited methods

Constants

SERVICE_INTERFACE

public static final String SERVICE_INTERFACE

The Intent that must be declared as handled by the service.

Constant Value: "androidx.media2.session.MediaLibraryService"

Public constructors

MediaLibraryService

public MediaLibraryService ()

Public methods

onBind

public IBinder onBind (Intent intent)

Default implementation for MediaSessionService to handle incoming binding request. If the request is for getting the session, the intent will have action SERVICE_INTERFACE.

Override this method if this service also needs to handle binder requests other than SERVICE_INTERFACE. Derived classes MUST call through to the super class's implementation of this method.

Returns
IBinder Binder

onGetSession

public abstract MediaLibraryService.MediaLibrarySession onGetSession (MediaSession.ControllerInfo controllerInfo)

Called when a MediaController is created with the this service's SessionToken. Return the session for telling the controller which session to connect. Return null to reject the connection from this controller.

Session returned here will be added to this service automatically. You don't need to call addSession(MediaSession) for that.

There are two special cases where the MediaSession.ControllerInfo.getPackageName() returns non-existent package name:

For those special cases, the values returned by MediaSession.ControllerInfo.getUid() and MediaSession.ControllerInfo.getConnectionHints() have no meaning.

This method is always called on the main thread.

Parameters
controllerInfo MediaSession.ControllerInfo: information of the controller which is trying to connect.

Returns
MediaLibraryService.MediaLibrarySession a MediaSession instance for the controller to connect to, or null to reject connection