public
final
class
MediaRoute2Info
extends Object
implements
Parcelable
| java.lang.Object | |
| ↳ | android.media.MediaRoute2Info |
Describes the properties of a route.
classMediaRoute2Info.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 |
SUITABILITY_STATUS_NOT_SUITABLE_FOR_TRANSFER
Indicates that the route is never suitable for media playback. |
int |
SUITABILITY_STATUS_SUITABLE_FOR_DEFAULT_TRANSFER
Indicates the route is always suitable for media playback. |
int |
SUITABILITY_STATUS_SUITABLE_FOR_MANUAL_TRANSFER
Indicates that the route is suitable for media playback only after explicit user selection. |
int |
TYPE_AUX_LINE
Indicates the route is using the auxiliary line-level connectors. |
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_HDMI_ARC
Indicates the route is an Audio Return Channel of an HDMI connection. |
int |
TYPE_HDMI_EARC
Indicates the route is an Enhanced Audio Return Channel of an HDMI connection. |
int |
TYPE_HEARING_AID
Indicates the route is a hearing aid. |
int |
TYPE_LINE_ANALOG
Indicates the route is an analog line-level connection. |
int |
TYPE_LINE_DIGITAL
Indicates the route is a digital line connection (for example S/PDIF). |
int |
TYPE_MULTICHANNEL_SPEAKER_GROUP
Indicates the route is a speaker group supporting multichannel contents. |
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 unique id of the route, if available. |
CharSequence
|
getName()
Gets the user-visible name of the route. |
String
|
getProviderPackageName()
Gets the package name of the |
List<Set<String>>
|
getRequiredPermissions()
|
int
|
getSuitabilityStatus()
Returns the route suitability status. |
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 | |
|---|---|
public static final int CONNECTION_STATE_CONNECTED
A connection state indicating the route is connected.
See also:
Constant Value: 2 (0x00000002)
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.
See also:
Constant Value: 1 (0x00000001)
public static final int CONNECTION_STATE_DISCONNECTED
The default connection state indicating the route is disconnected.
See also:
Constant Value: 0 (0x00000000)
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"
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"
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"
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"
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"
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.
See also:
Constant Value: 0 (0x00000000)
public static final int PLAYBACK_VOLUME_VARIABLE
Playback information indicating the playback volume is variable and can be controlled from this object.
See also:
Constant Value: 1 (0x00000001)
public static final int SUITABILITY_STATUS_NOT_SUITABLE_FOR_TRANSFER
Indicates that the route is never suitable for media playback.
Constant Value: 2 (0x00000002)
public static final int SUITABILITY_STATUS_SUITABLE_FOR_DEFAULT_TRANSFER
Indicates the route is always suitable for media playback.
Constant Value: 0 (0x00000000)
public static final int SUITABILITY_STATUS_SUITABLE_FOR_MANUAL_TRANSFER
Indicates that the route is suitable for media playback only after explicit user selection.
Constant Value: 1 (0x00000001)
public static final int TYPE_AUX_LINE
Indicates the route is using the auxiliary line-level connectors.
See also:
Constant Value: 19 (0x00000013)
public static final int TYPE_BLE_HEADSET
Indicates the route is a Bluetooth Low Energy (BLE) HEADSET.
Constant Value: 26 (0x0000001a)
public static final int TYPE_BLUETOOTH_A2DP
Indicates the route is a bluetooth device, such as a bluetooth speaker or headphones.
Constant Value: 8 (0x00000008)
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.
Constant Value: 2 (0x00000002)
public static final int TYPE_DOCK
Indicates the route is the audio device associated with a dock.
See also:
Constant Value: 13 (0x0000000d)
public static final int TYPE_GROUP
Indicates the route is a group of devices.
See also:
Constant Value: 2000 (0x000007d0)
public static final int TYPE_HDMI
Indicates the route is an HDMI connection.
See also:
Constant Value: 9 (0x00000009)
public static final int TYPE_HDMI_ARC
Indicates the route is an Audio Return Channel of an HDMI connection.
See also:
Constant Value: 10 (0x0000000a)
public static final int TYPE_HDMI_EARC
Indicates the route is an Enhanced Audio Return Channel of an HDMI connection.
See also:
Constant Value: 29 (0x0000001d)
public static final int TYPE_HEARING_AID
Indicates the route is a hearing aid.
Constant Value: 23 (0x00000017)
public static final int TYPE_LINE_ANALOG
Indicates the route is an analog line-level connection.
Constant Value: 5 (0x00000005)
public static final int TYPE_LINE_DIGITAL
Indicates the route is a digital line connection (for example S/PDIF).
Constant Value: 6 (0x00000006)
public static final int TYPE_MULTICHANNEL_SPEAKER_GROUP
Indicates the route is a speaker group supporting multichannel contents.
The speakers in the group are connected together using local network based protocols. The speaker group requires additional input of the physical positions of each individual speaker to provide a better experience on multichannel contents.
Constant Value: 32 (0x00000020)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
public static final int TYPE_UNKNOWN
Indicates the route's type is unknown or undefined.
See also:
Constant Value: 0 (0x00000000)
public static final int TYPE_USB_ACCESSORY
Indicates the route is a USB audio device in accessory mode.
Constant Value: 12 (0x0000000c)
public static final int TYPE_USB_DEVICE
Indicates the route is a USB audio device.
See also:
Constant Value: 11 (0x0000000b)
public static final int TYPE_USB_HEADSET
Indicates the route is a USB audio headset.
Constant Value: 22 (0x00000016)
public static final int TYPE_WIRED_HEADPHONES
Indicates the route is a pair of wired headphones.
Constant Value: 4 (0x00000004)
public static final int TYPE_WIRED_HEADSET
Indicates the route is a headset, which is the combination of a headphones and a microphone.
Constant Value: 3 (0x00000003)
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(Parcel,int),
the return value of this method must include the
CONTENTS_FILE_DESCRIPTOR bit.
int0 or
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:
x, x.equals(x) should return
true.
x and y, x.equals(y)
should return true if and only if
y.equals(x) returns true.
x, y, and z, if
x.equals(y) returns true and
y.equals(z) returns true, then
x.equals(z) should return true.
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.
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. |
public String getClientPackageName ()
Gets the package name of the app using the route. Returns null if no apps are using this route.
| Returns | |
|---|---|
String |
|
public int getConnectionState ()
Gets the connection state of the route.
intCONNECTION_STATE_DISCONNECTED,
CONNECTION_STATE_CONNECTING, or CONNECTION_STATE_CONNECTED.
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. |
public CharSequence getDescription ()
Gets the user-visible description of the route.
| Returns | |
|---|---|
CharSequence |
This value may be null. |
public Bundle getExtras ()
Gets an optional bundle with extra data.
| Returns | |
|---|---|
Bundle |
This value may be null. |
public List<String> getFeatures ()
Gets the supported features of the route.
| Returns | |
|---|---|
List<String> |
This value cannot be null. |
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. |
public String getId ()
Gets the unique id of the route, if available. Otherwise, returns the original id set by
Builder.Builder(String,CharSequence).
The original id of a route is the id set by the Builder when the route is built.
The unique id of a route is based on the original id, and assigned by the system once a
route is published by calling MediaRoute2ProviderService.notifyRoutes(Collection).
This ensures id uniqueness across routes from different providers, who assign original ids
which are only unique within the scope of a single provider. As a result, calling this method
on a route freshly created (which has not yet been published through MediaRoute2ProviderService.notifyRoutes(Collection)) will return the original id, and will
differ from the unique id obtained from calling this method on a route obtained through
MediaRouter2.
Routes obtained from MediaRouter2 will have unique IDs. For example, routes
obtained through MediaRouter2.getRoutes(), MediaRouter2.RouteCallback.onRoutesUpdated(List), or MediaRouter2.RoutingController.getSelectedRoutes().
| Returns | |
|---|---|
String |
This value cannot be null. |
See also:
public CharSequence getName ()
Gets the user-visible name of the route.
| Returns | |
|---|---|
CharSequence |
This value cannot be null. |
public String getProviderPackageName ()
Gets the package name of the provider that published the
route, or null if it has not yet been populated.
The package name of the route provider is populated by the system as part of MediaRoute2ProviderService.notifyRoutes(java.util.Collection). As a result, it's expectable
that a MediaRoute2Info instance that hasn't yet been published will have a null
provider package name. Otherwise, routes obtained via MediaRouter2 should have a
populated provider package name.
| Returns | |
|---|---|
String |
|
public List<Set<String>> getRequiredPermissions ()
| Returns | |
|---|---|
List<Set<String>> |
a list of permission sets - all the permissions in at least one of these sets must be
held to see this route.
This value cannot be null. |
public int getSuitabilityStatus ()
Returns the route suitability status.
intSUITABILITY_STATUS_SUITABLE_FOR_DEFAULT_TRANSFERSUITABILITY_STATUS_SUITABLE_FOR_MANUAL_TRANSFERSUITABILITY_STATUS_NOT_SUITABLE_FOR_TRANSFERpublic int getType ()
Returns the type of this route.
intTYPE_UNKNOWNTYPE_BUILTIN_SPEAKERTYPE_WIRED_HEADSETTYPE_WIRED_HEADPHONESTYPE_BLUETOOTH_A2DPTYPE_HDMITYPE_HDMI_ARCTYPE_HDMI_EARCTYPE_LINE_DIGITALTYPE_LINE_ANALOGTYPE_AUX_LINETYPE_USB_DEVICETYPE_USB_ACCESSORYTYPE_DOCKTYPE_USB_HEADSETTYPE_HEARING_AIDTYPE_BLE_HEADSETTYPE_MULTICHANNEL_SPEAKER_GROUPTYPE_REMOTE_TVTYPE_REMOTE_SPEAKERTYPE_REMOTE_AUDIO_VIDEO_RECEIVERTYPE_REMOTE_TABLETTYPE_REMOTE_TABLET_DOCKEDTYPE_REMOTE_COMPUTERTYPE_REMOTE_GAME_CONSOLETYPE_REMOTE_CARTYPE_REMOTE_SMARTWATCHTYPE_REMOTE_SMARTPHONETYPE_GROUPpublic int getVolume ()
Gets the current volume of the route. This may be invalid if the route is not selected.
| Returns | |
|---|---|
int |
|
public int getVolumeHandling ()
Gets information about how volume is handled on the route.
intPLAYBACK_VOLUME_FIXED or PLAYBACK_VOLUME_VARIABLE
public int getVolumeMax ()
Gets the maximum volume of the route.
| Returns | |
|---|---|
int |
|
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:
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.
equals method, then calling the hashCode method on each of the two objects must produce the
same integer result.
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. |
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 |
|
public String toString ()
Returns a string representation of the object.
| Returns | |
|---|---|
String |
a string representation of the object. |
public void writeToParcel (Parcel dest,
int flags)Flatten this object in to a Parcel.
destParcel: This value cannot be null.flagsint: Additional flags about how the object should be written.
May be 0 or Parcelable.PARCELABLE_WRITE_RETURN_VALUE.
0 or a combination of the following:
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2026-03-26 UTC.