Added in API level 30

RoutingSessionInfo


class RoutingSessionInfo : Parcelable
kotlin.Any
   ↳ android.media.RoutingSessionInfo

Describes a routing session which is created when a media route is selected.

Summary

Nested classes

Builder class for RoutingSessionInfo.

Constants
static Int

Indicates that the transfer happened from a non-privileged app.

static Int

Indicates that the transfer happened by the default logic without explicit system's or user's request.

static Int

Indicates that the transfer happened from within a privileged application.

Inherited constants
Public methods
Int

Boolean
equals(other: Any?)

Indicates whether some other object is "equal to" this one.

String

Gets the client package name of the session

Bundle?

Gets the control hints

MutableList<String!>

Gets the list of IDs of deselectable routes for the session.

String

Gets the id of the session.

CharSequence?

Gets the user-visible name of the session.

MutableList<String!>

Gets the list of IDs of selectable routes for the session.

MutableList<String!>

Gets the list of IDs of selected routes for the session.

Int

Returns the transfer reason for this routing session.

MutableList<String!>

Gets the list of IDs of transferable routes for the session.

Int

Gets the current volume of the session.

Int

Gets the information about how volume is handled on the session.

Int

Gets the maximum volume of the session.

Int

String

Unit
writeToParcel(dest: Parcel, flags: Int)

Flatten this object in to a Parcel.

Properties
static Parcelable.Creator<RoutingSessionInfo!>

Constants

TRANSFER_REASON_APP

Added in API level 35
static val TRANSFER_REASON_APP: Int

Indicates that the transfer happened from a non-privileged app.

Value: 2

TRANSFER_REASON_FALLBACK

Added in API level 35
static val TRANSFER_REASON_FALLBACK: Int

Indicates that the transfer happened by the default logic without explicit system's or user's request.

For example, an automatically connected Bluetooth device will have this transfer reason.

Value: 0

TRANSFER_REASON_SYSTEM_REQUEST

Added in API level 35
static val TRANSFER_REASON_SYSTEM_REQUEST: Int

Indicates that the transfer happened from within a privileged application.

Value: 1

Public methods

describeContents

Added in API level 30
fun describeContents(): Int
Return
Int a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either 0 or android.os.Parcelable#CONTENTS_FILE_DESCRIPTOR

equals

Added in API level 30
fun equals(other: Any?): Boolean

Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation on non-null object references:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.

An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.

Parameters
obj This value may be null.
Return
Boolean true if this object is the same as the obj argument; false otherwise.

getClientPackageName

Added in API level 30
fun getClientPackageName(): String

Gets the client package name of the session

Return
String This value cannot be null.

getControlHints

Added in API level 30
fun getControlHints(): Bundle?

Gets the control hints

Return
Bundle? This value may be null.

getDeselectableRoutes

Added in API level 30
fun getDeselectableRoutes(): MutableList<String!>

Gets the list of IDs of deselectable routes for the session.

Deselectable routes can be removed from the selected routes, so that the routing session stops routing to the newly deselected route, but continues on any remaining selected routes.

Deselectable routes should be a subset of the selected, meaning not all of the selected routes might be deselectable. For example, one of the selected routes may be a leader device coordinating group playback, which must always remain selected while the session is active.

Return
MutableList<String!> A possibly empty list of deselectable route ids. This value cannot be null.

getId

Added in API level 30
fun getId(): String

Gets the id of the session. The sessions which are given by MediaRouter2 will have unique IDs.

In order to ensure uniqueness in MediaRouter2 side, the value of this method can be different from what was set in MediaRoute2ProviderService.

Return
String This value cannot be null.

getName

Added in API level 30
fun getName(): CharSequence?

Gets the user-visible name of the session. It may be null.

getSelectableRoutes

Added in API level 30
fun getSelectableRoutes(): MutableList<String!>

Gets the list of IDs of selectable routes for the session.

Selectable routes can be added to a routing session (via android.media.MediaRouter2.RoutingController#selectRoute) in order to add them to the selected routes, so that media plays on the newly selected route along with the other selected routes.

Not to be confused with transferable routes. Transferring to a route makes it the sole selected route.

Return
MutableList<String!> A possibly empty list of selectable route ids. This value cannot be null.

getSelectedRoutes

Added in API level 30
fun getSelectedRoutes(): MutableList<String!>

Gets the list of IDs of selected routes for the session.

Selected routes are the routes that this session is actively routing media to.

The behavior of a routing session with multiple selected routes is ultimately defined by the MediaRoute2ProviderService implementation. However, typically, it's expected that all the selected routes of a routing session are playing the same media in sync.

Return
MutableList<String!> A non-empty list of selected route ids. This value cannot be null.

getTransferReason

Added in API level 35
fun getTransferReason(): Int

Returns the transfer reason for this routing session.

Return
Int Value is android.media.RoutingSessionInfo#TRANSFER_REASON_FALLBACK, android.media.RoutingSessionInfo#TRANSFER_REASON_SYSTEM_REQUEST, or android.media.RoutingSessionInfo#TRANSFER_REASON_APP

getTransferableRoutes

Added in API level 30
fun getTransferableRoutes(): MutableList<String!>

Gets the list of IDs of transferable routes for the session.

Transferring to a route (for example, using MediaRouter2.transferTo) replaces the list of selected routes with the target route, causing playback to move from one route to another.

Note that this is different from selectable routes, because selecting a route makes it part of the selected routes, while transferring to a route makes it the selected route. A route can be both transferable and selectable.

Note that playback may transfer across routes without the target route being in the list of transferable routes. This can happen by creating a new routing session to the target route, and releasing the routing session being transferred from. The difference is that a transfer to a route in the transferable list can happen with no intervention from the app, with the route provider taking care of the entire operation. A transfer to a route that is not in the list of transferable routes (by creating a new session) requires the app to move the playback state from one device to the other.

Return
MutableList<String!> A possibly empty list of transferable route ids. This value cannot be null.

getVolume

Added in API level 30
fun getVolume(): Int

Gets the current volume of the session.

When it's available, it represents the volume of routing session, which is a group of selected routes. To get the volume of each route, use MediaRoute2Info.getVolume().

getVolumeHandling

Added in API level 30
fun getVolumeHandling(): Int

Gets the information about how volume is handled on the session.

Return
Int MediaRoute2Info.PLAYBACK_VOLUME_FIXED or MediaRoute2Info.PLAYBACK_VOLUME_VARIABLE. Value is android.media.MediaRoute2Info#PLAYBACK_VOLUME_FIXED, or android.media.MediaRoute2Info#PLAYBACK_VOLUME_VARIABLE

getVolumeMax

Added in API level 30
fun getVolumeMax(): Int

Gets the maximum volume of the session.

hashCode

Added in API level 30
fun hashCode(): Int
Return
Int a hash code value for this object.

toString

Added in API level 30
fun toString(): String
Return
String a string representation of the object.

writeToParcel

Added in API level 30
fun writeToParcel(
    dest: Parcel,
    flags: Int
): Unit

Flatten this object in to a Parcel.

Parameters
dest Parcel: This value cannot be null.
flags Int: Additional flags about how the object should be written. May be 0 or PARCELABLE_WRITE_RETURN_VALUE. Value is either 0 or a combination of android.os.Parcelable#PARCELABLE_WRITE_RETURN_VALUE, and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES

Properties

CREATOR

Added in API level 30
static val CREATOR: Parcelable.Creator<RoutingSessionInfo!>