SessionToken
public final 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 |
|---|
@DocumentedTypes of |
Constants |
|
|---|---|
static final int |
|
static final int |
Type for |
static final int |
TYPE_SESSION = 0Type for |
static final int |
Type for |
static final int |
Unknown |
static final int |
UNKNOWN_SESSION_VERSION = 1000000Unknown |
Public constructors |
|---|
SessionToken(Context context, ComponentName serviceComponent)Creates a token for |
Public methods |
|
|---|---|
static ListenableFuture<SessionToken> |
createSessionToken(Context context, MediaSession.Token token)Creates a token from a platform |
static ListenableFuture<SessionToken> |
@UnstableApiCreates a token from a platform |
static ListenableFuture<SessionToken> |
@UnstableApiCreates a token from a platform |
static ListenableFuture<SessionToken> |
@UnstableApiCreates a token from a platform |
boolean |
|
static SessionToken |
@UnstableApiRestores a |
static ImmutableSet<SessionToken> |
getAllServiceTokens(Context context)Returns an |
Bundle |
Returns the extra |
int |
Returns the interface version of the session or |
String |
Returns the package name of the session |
String |
Returns the service name of the session. |
int |
Returns the library version of the session, |
int |
Returns the type of this token. |
int |
getUid()Returns the UID of the session process, or |
int |
hashCode() |
Bundle |
|
String |
toString() |
Constants
PLATFORM_SESSION_VERSION
public static final int PLATFORM_SESSION_VERSION = 0
Session version for a platform android.media.session.MediaSession or legacy
android.support.v4.media.session.MediaSessionCompat.
UNKNOWN_INTERFACE_VERSION
@UnstableApi
public static final int UNKNOWN_INTERFACE_VERSION = 0
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
public static final int UNKNOWN_SESSION_VERSION = 1000000
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
public SessionToken(Context context, ComponentName serviceComponent)
Creates a token for MediaController or MediaBrowser to connect to one of MediaSessionService, MediaLibraryService, or
androidx.media.MediaBrowserServiceCompat.
| Parameters | |
|---|---|
Context context |
The context. |
ComponentName serviceComponent |
The component name of the service. |
Public methods
createSessionToken
public static ListenableFuture<SessionToken> createSessionToken(Context context, MediaSession.Token token)
Creates a token from a platform Token.
| Parameters | |
|---|---|
Context context |
A |
MediaSession.Token token |
The platform |
| Returns | |
|---|---|
ListenableFuture<SessionToken> |
A |
createSessionToken
@UnstableApi
public static ListenableFuture<SessionToken> createSessionToken(Context context, Parcelable token)
Creates a token from a platform Token or
android.support.v4.media.session.MediaSessionCompat.Token.
| Parameters | |
|---|---|
Context context |
A |
Parcelable token |
The |
| Returns | |
|---|---|
ListenableFuture<SessionToken> |
A |
createSessionToken
@UnstableApi
public static ListenableFuture<SessionToken> createSessionToken(
Context context,
MediaSession.Token token,
Looper completionLooper
)
Creates a token from a platform Token.
| Parameters | |
|---|---|
Context context |
A |
MediaSession.Token token |
The platform |
Looper completionLooper |
The |
| Returns | |
|---|---|
ListenableFuture<SessionToken> |
A |
createSessionToken
@UnstableApi
public static ListenableFuture<SessionToken> createSessionToken(
Context context,
Parcelable token,
Looper completionLooper
)
Creates a token from a platform Token or
android.support.v4.media.session.MediaSessionCompat.Token.
| Parameters | |
|---|---|
Context context |
A |
Parcelable token |
The |
Looper completionLooper |
The |
| Returns | |
|---|---|
ListenableFuture<SessionToken> |
A |
fromBundle
@UnstableApi
public static SessionToken fromBundle(Bundle bundle)
Restores a SessionToken from a Bundle.
getAllServiceTokens
public static ImmutableSet<SessionToken> getAllServiceTokens(Context context)
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>
getInterfaceVersion
@UnstableApi
public int getInterfaceVersion()
Returns the interface version of the session or UNKNOWN_INTERFACE_VERSION.
getServiceName
public String getServiceName()
Returns the service name of the session. It will be an empty string if the type is TYPE_SESSION.
getSessionVersion
public int getSessionVersion()
Returns the library version of the session, UNKNOWN_SESSION_VERSION, or PLATFORM_SESSION_VERSION.
- If the session is a platform
android.media.session.MediaSessionor legacyandroid.support.v4.media.session.MediaSessionCompat, this will bePLATFORM_SESSION_VERSION. - If the token's
typeisTYPE_SESSION, this will be the same asVERSION_INTof the session. - If the token's
typeisTYPE_SESSION_SERVICEorTYPE_LIBRARY_SERVICE, this will beUNKNOWN_SESSION_VERSION. You can obtain the actual session version after a connecting a controller via theconnected tokenof typeTYPE_SESSION.
getType
@SessionToken.TokenType
public int getType()
Returns the type of this token. One of TYPE_SESSION, TYPE_SESSION_SERVICE, or TYPE_LIBRARY_SERVICE.
getUid
public int getUid()
Returns the UID of the session process, or INDEX_UNSET if the UID can't be determined due to missing package visibility.