MediaBrowserCompat

class MediaBrowserCompat
kotlin.Any
   ↳ android.support.v4.media.MediaBrowserCompat

Browses media content offered by a MediaBrowserServiceCompat.

This object is not thread-safe. All calls should happen on the thread on which the browser was constructed.

All callback methods will be called from the thread on which the browser was constructed.

Developer Guides

For information about building your media application, read the Media Apps developer guide.

Summary

Nested classes

Callbacks for connection related events.

abstract

Callback for receiving the result of #sendCustomAction.

abstract

Callback for receiving the result of #getItem.

A class with information on a single media item for use in browsing/searching media.

abstract

Callback for receiving the result of #search.

abstract

Callbacks for subscription related events.

Constants
static String

Predefined custom action to ask the connected service to download a specific MediaItem for offline playback.

static String

Predefined custom action to ask the connected service to remove the downloaded file of MediaItem by the download action.

static String

Used as a float extra field to denote the current progress during download.

static String

Used as a string extra field to denote the target MediaItem.

static String

Used as an int extra field to denote the page number to subscribe.

static String

Used as an int extra field to denote the number of media items in a page.

Public constructors
<init>(context: Context!, serviceComponent: ComponentName!, callback: MediaBrowserCompat.ConnectionCallback!, rootHints: Bundle!)

Creates a media browser for the specified media browse service.

Public methods
Bundle?

Gets any extras for the media service.

Unit

Disconnects from the media browse service.

Unit
search(query: String, extras: Bundle!, callback: MediaBrowserCompat.SearchCallback)

Searches media items from the connected service.

Unit

Connects to the media browse service.

Unit

Retrieves a specific MediaItem from the connected service.

Boolean

Returns whether the browser is connected to the service.

Unit
unsubscribe(parentId: String)

Unsubscribes for changes to the children of the specified media id.

Unit

Unsubscribes for changes to the children of the specified media id.

String

Gets the root id.

ComponentName

Gets the service component that the media browser is connected to.

MediaSessionCompat.Token

Gets the media session token associated with the media browser.

Unit

Sends a custom action to the connected service.

Unit

Queries for information about the media items that are contained within the specified id and subscribes to receive updates when they change.

Unit

Queries with service-specific arguments for information about the media items that are contained within the specified id and subscribes to receive updates when they change.

Constants

CUSTOM_ACTION_DOWNLOAD

static val CUSTOM_ACTION_DOWNLOAD: String

Predefined custom action to ask the connected service to download a specific MediaItem for offline playback. The id of the media item must be passed in an extra bundle. The download progress might be delivered to the browser via CustomActionCallback#onProgressUpdate.

Value: "android.support.v4.media.action.DOWNLOAD"

CUSTOM_ACTION_REMOVE_DOWNLOADED_FILE

static val CUSTOM_ACTION_REMOVE_DOWNLOADED_FILE: String

Predefined custom action to ask the connected service to remove the downloaded file of MediaItem by the download action. The id of the media item must be passed in an extra bundle.

Value: "android.support.v4.media.action.REMOVE_DOWNLOADED_FILE"

EXTRA_DOWNLOAD_PROGRESS

static val EXTRA_DOWNLOAD_PROGRESS: String

Used as a float extra field to denote the current progress during download. The value of this field must be a float number within [0.0, 1.0].

Value: "android.media.browse.extra.DOWNLOAD_PROGRESS"

EXTRA_MEDIA_ID

static val EXTRA_MEDIA_ID: String

Used as a string extra field to denote the target MediaItem.

Value: "android.media.browse.extra.MEDIA_ID"

EXTRA_PAGE

static val EXTRA_PAGE: String

Used as an int extra field to denote the page number to subscribe. The value of EXTRA_PAGE should be greater than or equal to 1.

Value: "android.media.browse.extra.PAGE"

EXTRA_PAGE_SIZE

static val EXTRA_PAGE_SIZE: String

Used as an int extra field to denote the number of media items in a page. The value of EXTRA_PAGE_SIZE should be greater than or equal to 1.

Value: "android.media.browse.extra.PAGE_SIZE"

Public constructors

<init>

MediaBrowserCompat(context: Context!, serviceComponent: ComponentName!, callback: MediaBrowserCompat.ConnectionCallback!, rootHints: Bundle!)

Creates a media browser for the specified media browse service.

Parameters
context Context!: The context.
serviceComponent Context!: The component name of the media browse service.
callback Context!: The connection callback.
rootHints Context!: An optional bundle of service-specific arguments to send to the media browse service when connecting and retrieving the root id for browsing, or null if none. The contents of this bundle may affect the information returned when browsing.

Public methods

getExtras

fun getExtras(): Bundle?

Gets any extras for the media service.

Exceptions
IllegalStateException if not connected.

disconnect

fun disconnect(): Unit

Disconnects from the media browse service. After this, no more callbacks will be received.

search

fun search(query: String, extras: Bundle!, callback: MediaBrowserCompat.SearchCallback): Unit

Searches media items from the connected service. Not all services may support this, and SearchCallback#onError will be called if not implemented.

Parameters
query String: The search query that contains keywords separated by space. Should not be an empty string.
extras String: The bundle of service-specific arguments to send to the media browser service. The contents of this bundle may affect the search result.
callback String: The callback to receive the search result. Must be non-null.
Exceptions
IllegalStateException if the browser is not connected to the media browser service.

connect

fun connect(): Unit

Connects to the media browse service.

The connection callback specified in the constructor will be invoked when the connection completes or fails.

getItem

fun getItem(mediaId: String, cb: MediaBrowserCompat.ItemCallback): Unit

Retrieves a specific MediaItem from the connected service. Not all services may support this, so falling back to subscribing to the parent's id should be used when unavailable.

Parameters
mediaId String: The id of the item to retrieve.
cb String: The callback to receive the result on.

isConnected

fun isConnected(): Boolean

Returns whether the browser is connected to the service.

unsubscribe

fun unsubscribe(parentId: String): Unit

Unsubscribes for changes to the children of the specified media id.

The query callback will no longer be invoked for results associated with this id once this method returns.

Parameters
parentId String: The id of the parent media item whose list of children will be unsubscribed.

unsubscribe

fun unsubscribe(parentId: String, callback: MediaBrowserCompat.SubscriptionCallback): Unit

Unsubscribes for changes to the children of the specified media id.

The query callback will no longer be invoked for results associated with this id once this method returns.

Parameters
parentId String: The id of the parent media item whose list of children will be unsubscribed.
callback String: A callback sent to the media browse service to subscribe.

getRoot

fun getRoot(): String

Gets the root id.

Note that the root id may become invalid or change when when the browser is disconnected.

Exceptions
IllegalStateException if not connected.

getServiceComponent

fun getServiceComponent(): ComponentName

Gets the service component that the media browser is connected to.

getSessionToken

fun getSessionToken(): MediaSessionCompat.Token

Gets the media session token associated with the media browser.

Note that the session token may become invalid or change when when the browser is disconnected.

Return
MediaSessionCompat.Token: The session token for the browser, never null.
Exceptions
IllegalStateException if not connected.

sendCustomAction

fun sendCustomAction(action: String, extras: Bundle!, callback: MediaBrowserCompat.CustomActionCallback?): Unit

Sends a custom action to the connected service. If the service doesn't support the given action, CustomActionCallback#onError will be called.

Parameters
action String: The custom action that will be sent to the connected service. Should not be an empty string.
extras String: The bundle of service-specific arguments to send to the media browser service.
callback String: The callback to receive the result of the custom action.

subscribe

fun subscribe(parentId: String, callback: MediaBrowserCompat.SubscriptionCallback): Unit

Queries for information about the media items that are contained within the specified id and subscribes to receive updates when they change.

The list of subscriptions is maintained even when not connected and is restored after the reconnection. It is ok to subscribe while not connected but the results will not be returned until the connection completes.

If the id is already subscribed with a different callback then the new callback will replace the previous one and the child data will be reloaded.

Parameters
parentId String: The id of the parent media item whose list of children will be subscribed.
callback String: The callback to receive the list of children.

subscribe

fun subscribe(parentId: String, options: Bundle, callback: MediaBrowserCompat.SubscriptionCallback): Unit

Queries with service-specific arguments for information about the media items that are contained within the specified id and subscribes to receive updates when they change.

The list of subscriptions is maintained even when not connected and is restored after the reconnection. It is ok to subscribe while not connected but the results will not be returned until the connection completes.

If the id is already subscribed with a different callback then the new callback will replace the previous one and the child data will be reloaded.

Parameters
parentId String: The id of the parent media item whose list of children will be subscribed.
options String: A bundle of service-specific arguments to send to the media browse service. The contents of this bundle may affect the information returned when browsing.
callback String: The callback to receive the list of children.