class SessionToken


A token that represents an ongoing MediaSession or a service (MediaSessionService, MediaLibraryService, or androix.media.MediaBrowserServiceCompat). If it represents a service, it may not be ongoing.

This may be passed to apps by the session owner to allow them to create a MediaController or a MediaBrowser to communicate with the session.

It can also be obtained by getAllServiceTokens.

Summary

Nested types

Types of SessionToken.

Constants

const Int

Session version for a platform android.media.session.MediaSession or legacy android.support.v4.media.session.MediaSessionCompat.

const Int

Type for MediaLibraryService.

const Int

Type for MediaSession.

const Int

Type for MediaSessionService.

const Int

Unknown interface version for a MediaSession that isn't connected yet, for an older session that didn't publish its interface version, for a platform android.media.session.MediaSession or for a legacy android.support.v4.media.session.MediaSessionCompat.

const Int

Unknown session version for a MediaSession that isn't connected yet.

Public constructors

SessionToken(context: Context!, serviceComponent: ComponentName!)

Creates a token for MediaController or MediaBrowser to connect to one of MediaSessionService, MediaLibraryService, or androidx.media.MediaBrowserServiceCompat.

Public functions

java-static ListenableFuture<SessionToken!>!

Creates a token from a platform Token.

java-static ListenableFuture<SessionToken!>!

Creates a token from a platform Token or android.support.v4.media.session.MediaSessionCompat.Token.

java-static ListenableFuture<SessionToken!>!
@UnstableApi
createSessionToken(
    context: Context!,
    token: MediaSession.Token!,
    completionLooper: Looper!
)

Creates a token from a platform Token.

java-static ListenableFuture<SessionToken!>!
@UnstableApi
createSessionToken(
    context: Context!,
    token: Parcelable!,
    completionLooper: Looper!
)

Creates a token from a platform Token or android.support.v4.media.session.MediaSessionCompat.Token.

Boolean
equals(obj: Any?)
java-static SessionToken!

Restores a SessionToken from a Bundle.

java-static ImmutableSet<SessionToken!>!

Returns an ImmutableSet of session tokens for media session services; MediaSessionService, MediaLibraryService, and androidx.media.MediaBrowserServiceCompat regardless of their activeness.

Bundle!

Returns the extra Bundle of this token.

Int

Returns the INTERFACE_VERSION of the session or UNKNOWN_INTERFACE_VERSION.

String!

Returns the package name of the application which originally created the session.

String!

Returns the package name of the session

String!

Returns the service name of the session.

Int

Returns the library version of the session, UNKNOWN_SESSION_VERSION, or PLATFORM_SESSION_VERSION.

Int

Returns the type of this token.

Int

Returns the UID of the session process, or INDEX_UNSET if the UID can't be determined due to missing package visibility.

Int
Bundle!
String!

Constants

PLATFORM_SESSION_VERSION

const val PLATFORM_SESSION_VERSION = 0: Int

Session version for a platform android.media.session.MediaSession or legacy android.support.v4.media.session.MediaSessionCompat.

TYPE_LIBRARY_SERVICE

const val TYPE_LIBRARY_SERVICE = 2: Int

Type for MediaLibraryService.

TYPE_SESSION

const val TYPE_SESSION = 0: Int

Type for MediaSession.

TYPE_SESSION_SERVICE

const val TYPE_SESSION_SERVICE = 1: Int

Type for MediaSessionService.

UNKNOWN_INTERFACE_VERSION

@UnstableApi
const val UNKNOWN_INTERFACE_VERSION = 0: Int

Unknown interface version for a MediaSession that isn't connected yet, for an older session that didn't publish its interface version, for a platform android.media.session.MediaSession or for a legacy android.support.v4.media.session.MediaSessionCompat.

Note: Use getConnectedToken to obtain the version after connecting a controller.

UNKNOWN_SESSION_VERSION

const val UNKNOWN_SESSION_VERSION = 1000000: Int

Unknown session version for a MediaSession that isn't connected yet.

Note: Use getConnectedToken to obtain the version after connecting a controller.

Public constructors

SessionToken

SessionToken(context: Context!, serviceComponent: ComponentName!)

Creates a token for MediaController or MediaBrowser to connect to one of MediaSessionService, MediaLibraryService, or androidx.media.MediaBrowserServiceCompat.

Parameters
context: Context!

The context.

serviceComponent: ComponentName!

The component name of the service.

Public functions

createSessionToken

java-static fun createSessionToken(context: Context!, token: MediaSession.Token!): ListenableFuture<SessionToken!>!

Creates a token from a platform Token.

Parameters
context: Context!

A Context.

token: MediaSession.Token!

The platform Token.

createSessionToken

@UnstableApi
java-static fun createSessionToken(context: Context!, token: Parcelable!): ListenableFuture<SessionToken!>!

Creates a token from a platform Token or android.support.v4.media.session.MediaSessionCompat.Token.

Parameters
context: Context!

A Context.

token: Parcelable!

The Token or android.support.v4.media.session.MediaSessionCompat.Token.

createSessionToken

@UnstableApi
java-static fun createSessionToken(
    context: Context!,
    token: MediaSession.Token!,
    completionLooper: Looper!
): ListenableFuture<SessionToken!>!

Creates a token from a platform Token.

Parameters
context: Context!

A Context.

token: MediaSession.Token!

The platform Token.

completionLooper: Looper!

The Looper on which the returned ListenableFuture completes. This Looper can't be used to call future.get() on the returned ListenableFuture.

createSessionToken

@UnstableApi
java-static fun createSessionToken(
    context: Context!,
    token: Parcelable!,
    completionLooper: Looper!
): ListenableFuture<SessionToken!>!

Creates a token from a platform Token or android.support.v4.media.session.MediaSessionCompat.Token.

Parameters
context: Context!

A Context.

token: Parcelable!

The Token or android.support.v4.media.session.MediaSessionCompat.Token.

completionLooper: Looper!

The Looper on which the returned ListenableFuture completes. This Looper can't be used to call future.get() on the returned ListenableFuture.

equals

fun equals(obj: Any?): Boolean

fromBundle

@UnstableApi
java-static fun fromBundle(bundle: Bundle!): SessionToken!

Restores a SessionToken from a Bundle.

getAllServiceTokens

java-static fun getAllServiceTokens(context: Context!): ImmutableSet<SessionToken!>!

Returns an ImmutableSet of session tokens for media session services; MediaSessionService, MediaLibraryService, and androidx.media.MediaBrowserServiceCompat regardless of their activeness.

The app targeting API level 30 or higher must include a <queries> element in their manifest to get service tokens of other apps. See the following example and this guide for more information.

<intent>
  <action android:name="androidx.media3.session.MediaSessionService" />
</intent>
<intent>
  <action android:name="androidx.media3.session.MediaLibraryService" />
</intent>
<intent>
  <action android:name="android.media.browse.MediaBrowserService" />
</intent>

getExtras

fun getExtras(): Bundle!

Returns the extra Bundle of this token.

See also
setExtras

getInterfaceVersion

@UnstableApi
fun getInterfaceVersion(): Int

Returns the INTERFACE_VERSION of the session or UNKNOWN_INTERFACE_VERSION.

getOriginalPackageName

@UnstableApi
fun getOriginalPackageName(): String!

Returns the package name of the application which originally created the session. This may be different from getPackageName if setPackageNameOverride was used to create the session.

getPackageName

fun getPackageName(): String!

Returns the package name of the session

getServiceName

fun getServiceName(): String!

Returns the service name of the session. It will be an empty string if the type is TYPE_SESSION.

getSessionVersion

fun getSessionVersion(): Int

Returns the library version of the session, UNKNOWN_SESSION_VERSION, or PLATFORM_SESSION_VERSION.

getType

@SessionToken.TokenType
fun getType(): Int

Returns the type of this token. One of TYPE_SESSION, TYPE_SESSION_SERVICE, or TYPE_LIBRARY_SERVICE.

getUid

fun getUid(): Int

Returns the UID of the session process, or INDEX_UNSET if the UID can't be determined due to missing package visibility.

hashCode

fun hashCode(): Int

toBundle

@UnstableApi
fun toBundle(): Bundle!

toString

fun toString(): String!