RoutingSessionInfo


public final class RoutingSessionInfo
extends Object implements Parcelable

java.lang.Object
   ↳ android.media.RoutingSessionInfo


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

Summary

Nested classes

class RoutingSessionInfo.Builder

Builder class for RoutingSessionInfo

Constants

int TRANSFER_REASON_APP

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

int TRANSFER_REASON_FALLBACK

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

int TRANSFER_REASON_SYSTEM_REQUEST

Indicates that the transfer happened from within a privileged application.

Inherited constants

Fields

public static final Creator<RoutingSessionInfo> CREATOR

Public methods

int describeContents()

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.

boolean equals(Object obj)

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

String getClientPackageName()

Gets the client package name of the session

Bundle getControlHints()

Gets the control hints

List<String> getDeselectableRoutes()

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

String getId()

Gets the id of the session.

CharSequence getName()

Gets the user-visible name of the session.

List<String> getSelectableRoutes()

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

List<String> getSelectedRoutes()

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

int getTransferReason()

Returns the transfer reason for this routing session.

List<String> getTransferableRoutes()

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

int getVolume()

Gets the current volume of the session.

int getVolumeHandling()

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

int getVolumeMax()

Gets the maximum volume of the session.

int hashCode()

Returns a hash code value for the object.

String toString()

Returns a string representation of the object.

void writeToParcel(Parcel dest, int flags)

Flatten this object in to a Parcel.

Inherited methods

Constants

TRANSFER_REASON_APP

Added in API level 35
public static final int TRANSFER_REASON_APP

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

Constant Value: 2 (0x00000002)

TRANSFER_REASON_FALLBACK

Added in API level 35
public static final int TRANSFER_REASON_FALLBACK

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.

Constant Value: 0 (0x00000000)

TRANSFER_REASON_SYSTEM_REQUEST

Added in API level 35
public static final int TRANSFER_REASON_SYSTEM_REQUEST

Indicates that the transfer happened from within a privileged application.

Constant Value: 1 (0x00000001)

Fields

CREATOR

Added in API level 30
public static final Creator<RoutingSessionInfo> CREATOR

Public methods

describeContents

Added in API level 30
public int describeContents ()

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. For example, if the object will include a file descriptor in the output of writeToParcel(android.os.Parcel, int), the return value of this method must include the CONTENTS_FILE_DESCRIPTOR bit.

Returns
int a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either 0 or CONTENTS_FILE_DESCRIPTOR

equals

Added in API level 30
public boolean equals (Object obj)

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 Object: This value may be null.

Returns
boolean true if this object is the same as the obj argument; false otherwise.

getClientPackageName

Added in API level 30
public String getClientPackageName ()

Gets the client package name of the session

Returns
String This value cannot be null.

getControlHints

Added in API level 30
public Bundle getControlHints ()

Gets the control hints

Returns
Bundle This value may be null.

getDeselectableRoutes

Added in API level 30
public List<String> getDeselectableRoutes ()

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 routes, 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.

Returns
List<String> A possibly empty list of deselectable route ids. This value cannot be null.

getId

Added in API level 30
public String getId ()

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.

Returns
String This value cannot be null.

getName

Added in API level 30
public CharSequence getName ()

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

Returns
CharSequence

getSelectableRoutes

Added in API level 30
public List<String> getSelectableRoutes ()

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

Selectable routes can be added to a routing session (via MediaRouter2.RoutingController.selectRoute(MediaRoute2Info)) 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.

Returns
List<String> A possibly empty list of selectable route ids. This value cannot be null.

getSelectedRoutes

Added in API level 30
public List<String> getSelectedRoutes ()

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.

Returns
List<String> A non-empty list of selected route ids. This value cannot be null.

getTransferReason

Added in API level 35
public int getTransferReason ()

Returns the transfer reason for this routing session.

Returns
int Value is TRANSFER_REASON_FALLBACK, TRANSFER_REASON_SYSTEM_REQUEST, or TRANSFER_REASON_APP

getTransferableRoutes

Added in API level 30
public List<String> getTransferableRoutes ()

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.

Returns
List<String> A possibly empty list of transferable route ids. This value cannot be null.

getVolume

Added in API level 30
public int getVolume ()

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().

Returns
int

getVolumeHandling

Added in API level 30
public int getVolumeHandling ()

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

Returns
int MediaRoute2Info.PLAYBACK_VOLUME_FIXED or MediaRoute2Info.PLAYBACK_VOLUME_VARIABLE. Value is MediaRoute2Info.PLAYBACK_VOLUME_FIXED, or MediaRoute2Info.PLAYBACK_VOLUME_VARIABLE

getVolumeMax

Added in API level 30
public int getVolumeMax ()

Gets the maximum volume of the session.

Returns
int

hashCode

Added in API level 30
public int hashCode ()

Returns a hash code value for the object. This method is supported for the benefit of hash tables such as those provided by HashMap.

The general contract of hashCode is:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
  • If two objects are equal according to the equals method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the equals method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.

Returns
int a hash code value for this object.

toString

Added in API level 30
public String toString ()

Returns a string representation of the object.

Returns
String a string representation of the object.

writeToParcel

Added in API level 30
public void writeToParcel (Parcel dest, 
                int flags)

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.PARCELABLE_WRITE_RETURN_VALUE. Value is either 0 or a combination of Parcelable.PARCELABLE_WRITE_RETURN_VALUE, and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES