MediaRoute2Info

public final class MediaRoute2Info
extends Object implements Parcelable

java.lang.Object
   ↳ android.media.MediaRoute2Info


Describes the properties of a route.

Summary

Nested classes

class MediaRoute2Info.Builder

Builder for media route info

Constants

int CONNECTION_STATE_CONNECTED

A connection state indicating the route is connected.

int CONNECTION_STATE_CONNECTING

A connection state indicating the route is in the process of connecting and is not yet ready for use.

int CONNECTION_STATE_DISCONNECTED

The default connection state indicating the route is disconnected.

String FEATURE_LIVE_AUDIO

Route feature: Live audio.

String FEATURE_LIVE_VIDEO

Route feature: Live video.

String FEATURE_REMOTE_AUDIO_PLAYBACK

Route feature: Remote audio playback.

String FEATURE_REMOTE_PLAYBACK

Route feature: Remote playback.

String FEATURE_REMOTE_VIDEO_PLAYBACK

Route feature: Remote video playback.

int PLAYBACK_VOLUME_FIXED

Playback information indicating the playback volume is fixed, i.e. it cannot be controlled from this object.

int PLAYBACK_VOLUME_VARIABLE

Playback information indicating the playback volume is variable and can be controlled from this object.

int TYPE_BLE_HEADSET

Indicates the route is a Bluetooth Low Energy (BLE) HEADSET.

int TYPE_BLUETOOTH_A2DP

Indicates the route is a bluetooth device, such as a bluetooth speaker or headphones.

int TYPE_BUILTIN_SPEAKER

Indicates the route is the speaker system (i.e.

int TYPE_DOCK

Indicates the route is the audio device associated with a dock.

int TYPE_GROUP

Indicates the route is a group of devices.

int TYPE_HDMI

Indicates the route is an HDMI connection.

int TYPE_HEARING_AID

Indicates the route is a hearing aid.

int TYPE_REMOTE_AUDIO_VIDEO_RECEIVER

Indicates the route is a remote Audio/Video Receiver (AVR).

int TYPE_REMOTE_CAR

Indicates the route is a remote car.

int TYPE_REMOTE_COMPUTER

Indicates the route is a remote computer.

int TYPE_REMOTE_GAME_CONSOLE

Indicates the route is a remote gaming console.

int TYPE_REMOTE_SMARTPHONE

Indicates the route is a remote smartphone.

int TYPE_REMOTE_SMARTWATCH

Indicates the route is a remote smartwatch.

int TYPE_REMOTE_SPEAKER

Indicates the route is a remote speaker.

int TYPE_REMOTE_TABLET

Indicates the route is a remote tablet.

int TYPE_REMOTE_TABLET_DOCKED

Indicates the route is a remote docked tablet.

int TYPE_REMOTE_TV

Indicates the route is a remote TV.

int TYPE_UNKNOWN

Indicates the route's type is unknown or undefined.

int TYPE_USB_ACCESSORY

Indicates the route is a USB audio device in accessory mode.

int TYPE_USB_DEVICE

Indicates the route is a USB audio device.

int TYPE_USB_HEADSET

Indicates the route is a USB audio headset.

int TYPE_WIRED_HEADPHONES

Indicates the route is a pair of wired headphones.

int TYPE_WIRED_HEADSET

Indicates the route is a headset, which is the combination of a headphones and a microphone.

Inherited constants

Fields

public static final Creator<MediaRoute2Info> 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 package name of the app using the route.

int getConnectionState()

Gets the connection state of the route.

Set<String> getDeduplicationIds()

Gets the deduplication IDs associated to the route.

CharSequence getDescription()

Gets the user-visible description of the route.

Bundle getExtras()

Gets an optional bundle with extra data.

List<String> getFeatures()

Gets the supported features of the route.

Uri getIconUri()

Gets the URI of the icon representing this route.

String getId()

Gets the id of the route.

CharSequence getName()

Gets the user-visible name of the route.

int getType()

Returns the type of this route.

int getVolume()

Gets the current volume of the route.

int getVolumeHandling()

Gets information about how volume is handled on the route.

int getVolumeMax()

Gets the maximum volume of the route.

int hashCode()

Returns a hash code value for the object.

boolean isSystemRoute()

Returns whether the route is a system route or not.

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

CONNECTION_STATE_CONNECTED

Added in API level 30
public static final int CONNECTION_STATE_CONNECTED

A connection state indicating the route is connected.

Constant Value: 2 (0x00000002)

CONNECTION_STATE_CONNECTING

Added in API level 30
public static final int CONNECTION_STATE_CONNECTING

A connection state indicating the route is in the process of connecting and is not yet ready for use.

Constant Value: 1 (0x00000001)

CONNECTION_STATE_DISCONNECTED

Added in API level 30
public static final int CONNECTION_STATE_DISCONNECTED

The default connection state indicating the route is disconnected.

Constant Value: 0 (0x00000000)

FEATURE_LIVE_AUDIO

Added in API level 30
public static final String FEATURE_LIVE_AUDIO

Route feature: Live audio.

A route that supports live audio routing will allow the media audio stream to be sent to supported destinations. This can include internal speakers or audio jacks on the device itself, A2DP devices, and more.

When a live audio route is selected, audio routing is transparent to the application. All audio played on the media stream will be routed to the selected destination.

Refer to the class documentation for details about live audio routes.

Constant Value: "android.media.route.feature.LIVE_AUDIO"

FEATURE_LIVE_VIDEO

Added in API level 30
public static final String FEATURE_LIVE_VIDEO

Route feature: Live video.

A route that supports live video routing will allow a mirrored version of the device's primary display or a customized Presentation to be sent to supported destinations.

When a live video route is selected, audio and video routing is transparent to the application. By default, audio and video is routed to the selected destination. For certain live video routes, the application may also use a Presentation to replace the mirrored view on the external display with different content.

Refer to the class documentation for details about live video routes.

See also:

Constant Value: "android.media.route.feature.LIVE_VIDEO"

FEATURE_REMOTE_AUDIO_PLAYBACK

Added in API level 30
public static final String FEATURE_REMOTE_AUDIO_PLAYBACK

Route feature: Remote audio playback.

A route that supports remote audio playback routing will allow an application to send requests to play audio content remotely to supported destinations.

Constant Value: "android.media.route.feature.REMOTE_AUDIO_PLAYBACK"

FEATURE_REMOTE_PLAYBACK

Added in API level 30
public static final String FEATURE_REMOTE_PLAYBACK

Route feature: Remote playback.

A route that supports remote playback routing will allow an application to send requests to play content remotely to supported destinations. A route may only support audio playback or video playback.

Remote playback routes destinations operate independently of the local device. When a remote playback route is selected, the application can control the content playing on the destination using MediaRouter2.RoutingController#getControlHints(). The application may also receive status updates from the route regarding remote playback.

Refer to the class documentation for details about remote playback routes.

Constant Value: "android.media.route.feature.REMOTE_PLAYBACK"

FEATURE_REMOTE_VIDEO_PLAYBACK

Added in API level 30
public static final String FEATURE_REMOTE_VIDEO_PLAYBACK

Route feature: Remote video playback.

A route that supports remote video playback routing will allow an application to send requests to play video content remotely to supported destinations.

Constant Value: "android.media.route.feature.REMOTE_VIDEO_PLAYBACK"

PLAYBACK_VOLUME_FIXED

Added in API level 30
public static final int PLAYBACK_VOLUME_FIXED

Playback information indicating the playback volume is fixed, i.e. it cannot be controlled from this object. An example of fixed playback volume is a remote player, playing over HDMI where the user prefers to control the volume on the HDMI sink, rather than attenuate at the source.

Constant Value: 0 (0x00000000)

PLAYBACK_VOLUME_VARIABLE

Added in API level 30
public static final int PLAYBACK_VOLUME_VARIABLE

Playback information indicating the playback volume is variable and can be controlled from this object.

Constant Value: 1 (0x00000001)

TYPE_BLE_HEADSET

Added in API level 34
public static final int TYPE_BLE_HEADSET

Indicates the route is a Bluetooth Low Energy (BLE) HEADSET.

See also:

Constant Value: 26 (0x0000001a)

TYPE_BLUETOOTH_A2DP

Added in API level 34
public static final int TYPE_BLUETOOTH_A2DP

Indicates the route is a bluetooth device, such as a bluetooth speaker or headphones.

See also:

Constant Value: 8 (0x00000008)

TYPE_BUILTIN_SPEAKER

Added in API level 34
public static final int TYPE_BUILTIN_SPEAKER

Indicates the route is the speaker system (i.e. a mono speaker or stereo speakers) built into the device.

See also:

Constant Value: 2 (0x00000002)

TYPE_DOCK

Added in API level 34
public static final int TYPE_DOCK

Indicates the route is the audio device associated with a dock.

See also:

Constant Value: 13 (0x0000000d)

TYPE_GROUP

Added in API level 34
public static final int TYPE_GROUP

Indicates the route is a group of devices.

See also:

Constant Value: 2000 (0x000007d0)

TYPE_HDMI

Added in API level 34
public static final int TYPE_HDMI

Indicates the route is an HDMI connection.

See also:

Constant Value: 9 (0x00000009)

TYPE_HEARING_AID

Added in API level 34
public static final int TYPE_HEARING_AID

Indicates the route is a hearing aid.

See also:

Constant Value: 23 (0x00000017)

TYPE_REMOTE_AUDIO_VIDEO_RECEIVER

Added in API level 34
public static final int TYPE_REMOTE_AUDIO_VIDEO_RECEIVER

Indicates the route is a remote Audio/Video Receiver (AVR).

A remote device uses a routing protocol managed by the application, as opposed to the routing being done by the system.

See also:

Constant Value: 1003 (0x000003eb)

TYPE_REMOTE_CAR

public static final int TYPE_REMOTE_CAR

Indicates the route is a remote car.

A remote device uses a routing protocol managed by the application, as opposed to the routing being done by the system.

See also:

Constant Value: 1008 (0x000003f0)

TYPE_REMOTE_COMPUTER

public static final int TYPE_REMOTE_COMPUTER

Indicates the route is a remote computer.

A remote device uses a routing protocol managed by the application, as opposed to the routing being done by the system.

See also:

Constant Value: 1006 (0x000003ee)

TYPE_REMOTE_GAME_CONSOLE

public static final int TYPE_REMOTE_GAME_CONSOLE

Indicates the route is a remote gaming console.

A remote device uses a routing protocol managed by the application, as opposed to the routing being done by the system.

See also:

Constant Value: 1007 (0x000003ef)

TYPE_REMOTE_SMARTPHONE

public static final int TYPE_REMOTE_SMARTPHONE

Indicates the route is a remote smartphone.

A remote device uses a routing protocol managed by the application, as opposed to the routing being done by the system.

See also:

Constant Value: 1010 (0x000003f2)

TYPE_REMOTE_SMARTWATCH

public static final int TYPE_REMOTE_SMARTWATCH

Indicates the route is a remote smartwatch.

A remote device uses a routing protocol managed by the application, as opposed to the routing being done by the system.

See also:

Constant Value: 1009 (0x000003f1)

TYPE_REMOTE_SPEAKER

Added in API level 34
public static final int TYPE_REMOTE_SPEAKER

Indicates the route is a remote speaker.

A remote device uses a routing protocol managed by the application, as opposed to the routing being done by the system.

See also:

Constant Value: 1002 (0x000003ea)

TYPE_REMOTE_TABLET

public static final int TYPE_REMOTE_TABLET

Indicates the route is a remote tablet.

A remote device uses a routing protocol managed by the application, as opposed to the routing being done by the system.

See also:

Constant Value: 1004 (0x000003ec)

TYPE_REMOTE_TABLET_DOCKED

public static final int TYPE_REMOTE_TABLET_DOCKED

Indicates the route is a remote docked tablet.

A remote device uses a routing protocol managed by the application, as opposed to the routing being done by the system.

See also:

Constant Value: 1005 (0x000003ed)

TYPE_REMOTE_TV

Added in API level 34
public static final int TYPE_REMOTE_TV

Indicates the route is a remote TV.

A remote device uses a routing protocol managed by the application, as opposed to the routing being done by the system.

See also:

Constant Value: 1001 (0x000003e9)

TYPE_UNKNOWN

Added in API level 34
public static final int TYPE_UNKNOWN

Indicates the route's type is unknown or undefined.

See also:

Constant Value: 0 (0x00000000)

TYPE_USB_ACCESSORY

Added in API level 34
public static final int TYPE_USB_ACCESSORY

Indicates the route is a USB audio device in accessory mode.

See also:

Constant Value: 12 (0x0000000c)

TYPE_USB_DEVICE

Added in API level 34
public static final int TYPE_USB_DEVICE

Indicates the route is a USB audio device.

See also:

Constant Value: 11 (0x0000000b)

TYPE_USB_HEADSET

Added in API level 34
public static final int TYPE_USB_HEADSET

Indicates the route is a USB audio headset.

See also:

Constant Value: 22 (0x00000016)

TYPE_WIRED_HEADPHONES

Added in API level 34
public static final int TYPE_WIRED_HEADPHONES

Indicates the route is a pair of wired headphones.

See also:

Constant Value: 4 (0x00000004)

TYPE_WIRED_HEADSET

Added in API level 34
public static final int TYPE_WIRED_HEADSET

Indicates the route is a headset, which is the combination of a headphones and a microphone.

See also:

Constant Value: 3 (0x00000003)

Fields

CREATOR

Added in API level 30
public static final Creator<MediaRoute2Info> 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: the reference object with which to compare.

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 package name of the app using the route. Returns null if no apps are using this route.

Returns
String

getConnectionState

Added in API level 30
public int getConnectionState ()

Gets the connection state of the route.

Returns
int The connection state of this route: CONNECTION_STATE_DISCONNECTED, CONNECTION_STATE_CONNECTING, or CONNECTION_STATE_CONNECTED. Value is CONNECTION_STATE_DISCONNECTED, CONNECTION_STATE_CONNECTING, or CONNECTION_STATE_CONNECTED

getDeduplicationIds

Added in API level 34
public Set<String> getDeduplicationIds ()

Gets the deduplication IDs associated to the route.

Two routes with a matching deduplication ID originate from the same receiver device.

Returns
Set<String> This value cannot be null.

getDescription

Added in API level 30
public CharSequence getDescription ()

Gets the user-visible description of the route.

Returns
CharSequence This value may be null.

getExtras

Added in API level 30
public Bundle getExtras ()

Gets an optional bundle with extra data.

Returns
Bundle This value may be null.

getFeatures

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

Gets the supported features of the route.

Returns
List<String> This value cannot be null.

getIconUri

Added in API level 30
public Uri getIconUri ()

Gets the URI of the icon representing this route.

This icon will be used in picker UIs if available.

Returns
Uri The URI of the icon representing this route, or null if none.

getId

Added in API level 30
public String getId ()

Gets the id of the route. The routes 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 route.

Returns
CharSequence This value cannot be null.

getVolume

Added in API level 30
public int getVolume ()

Gets the current volume of the route. This may be invalid if the route is not selected.

Returns
int

getVolumeHandling

Added in API level 30
public int getVolumeHandling ()

Gets information about how volume is handled on the route.

Returns
int PLAYBACK_VOLUME_FIXED or PLAYBACK_VOLUME_VARIABLE Value is PLAYBACK_VOLUME_FIXED, or PLAYBACK_VOLUME_VARIABLE

getVolumeMax

Added in API level 30
public int getVolumeMax ()

Gets the maximum volume of the route.

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.

isSystemRoute

Added in API level 30
public boolean isSystemRoute ()

Returns whether the route is a system route or not.

System routes are media routes directly controlled by the system such as phone speaker, wired headset, and Bluetooth devices.

Returns
boolean

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