Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Constants](https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#constants) \| [Methods](https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#inhmethods)

# MediaRouter.RouteInfo

*** ** * ** ***

` public static class MediaRouter.RouteInfo `   
` extends https://developer.android.com/reference/java/lang/Object ` ` `

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.media.MediaRouter.RouteInfo |

Known direct subclasses [MediaRouter.RouteGroup](https://developer.android.com/reference/android/media/MediaRouter.RouteGroup), [MediaRouter.UserRouteInfo](https://developer.android.com/reference/android/media/MediaRouter.UserRouteInfo) [MediaRouter.RouteGroup](https://developer.android.com/reference/android/media/MediaRouter.RouteGroup) Information about a route that consists of multiple other routes in a group. [MediaRouter.UserRouteInfo](https://developer.android.com/reference/android/media/MediaRouter.UserRouteInfo) Information about a route that the application may define and modify.   

*** ** * ** ***

Information about a media route.

## Summary

| ### Constants ||
|---|---|
| `int` | `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#DEVICE_TYPE_BLUETOOTH` A receiver device type of the route indicating the presentation of the media is happening on a bluetooth device such as a bluetooth speaker. |
| `int` | `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#DEVICE_TYPE_SPEAKER` A receiver device type of the route indicating the presentation of the media is happening on a speaker. |
| `int` | `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#DEVICE_TYPE_TV` A receiver device type of the route indicating the presentation of the media is happening on a TV. |
| `int` | `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#DEVICE_TYPE_UNKNOWN` The default receiver device type of the route indicating the type is unknown. |
| `int` | `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#PLAYBACK_TYPE_LOCAL` The default playback type, "local", indicating the presentation of the media is happening on the same device (e.g. a phone, a tablet) as where it is controlled from. |
| `int` | `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#PLAYBACK_TYPE_REMOTE` A playback type indicating the presentation of the media is happening on a different device (i.e. the remote device) than where it is controlled from. |
| `int` | `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#PLAYBACK_VOLUME_FIXED` Playback information indicating the playback volume is fixed, i.e. it cannot be controlled from this object. |
| `int` | `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#PLAYBACK_VOLUME_VARIABLE` Playback information indicating the playback volume is variable and can be controlled from this object. |

| ### Public methods ||
|---|---|
| ` https://developer.android.com/reference/android/media/MediaRouter.RouteCategory` | ` https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#getCategory()() ` |
| ` https://developer.android.com/reference/java/lang/CharSequence` | ` https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#getDescription()() ` Gets the user-visible description of the route. |
| ` int` | ` https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#getDeviceType()() ` Gets the type of the receiver device associated with this route. |
| ` https://developer.android.com/reference/android/media/MediaRouter.RouteGroup` | ` https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#getGroup()() ` |
| ` https://developer.android.com/reference/android/graphics/drawable/Drawable` | ` https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#getIconDrawable()() ` Get the icon representing this route. |
| ` https://developer.android.com/reference/java/lang/CharSequence` | ` https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#getName(android.content.Context)(https://developer.android.com/reference/android/content/Context context) ` Return the properly localized/resource user-visible name of this route. |
| ` https://developer.android.com/reference/java/lang/CharSequence` | ` https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#getName()() ` Gets the user-visible name of the route. |
| ` int` | ` https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#getPlaybackStream()() ` |
| ` int` | ` https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#getPlaybackType()() ` |
| ` https://developer.android.com/reference/android/view/Display` | ` https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#getPresentationDisplay()() ` Gets the `https://developer.android.com/reference/android/view/Display` that should be used by the application to show a `https://developer.android.com/reference/android/app/Presentation` on an external display when this route is selected. |
| ` https://developer.android.com/reference/java/lang/CharSequence` | ` https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#getStatus()() ` |
| ` int` | ` https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#getSupportedTypes()() ` |
| ` https://developer.android.com/reference/java/lang/Object` | ` https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#getTag()() ` |
| ` int` | ` https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#getVolume()() ` Return the current volume for this route. |
| ` int` | ` https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#getVolumeHandling()() ` |
| ` int` | ` https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#getVolumeMax()() ` |
| ` boolean` | ` https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#isConnecting()() ` Returns true if the route is in the process of connecting and is not yet ready for use. |
| ` boolean` | ` https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#isEnabled()() ` Returns true if this route is enabled and may be selected. |
| ` void` | ` https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#requestSetVolume(int)(int volume) ` Request a volume change for this route. |
| ` void` | ` https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#requestUpdateVolume(int)(int direction) ` Request an incremental volume update for this route. |
| ` void` | ` https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#setTag(java.lang.Object)(https://developer.android.com/reference/java/lang/Object tag) ` Set an application-specific tag object for this route. |
| ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#toString()() ` Returns a string representation of the object. |

### Inherited methods

From class ` https://developer.android.com/reference/java/lang/Object ` ` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/lang/Object#clone()() `

Creates and returns a copy of this object.
` boolean` ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Indicates whether some other object is "equal to" this one.
` void` ` https://developer.android.com/reference/java/lang/Object#finalize()() `

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
` final https://developer.android.com/reference/java/lang/Class<?>` ` https://developer.android.com/reference/java/lang/Object#getClass()() `

Returns the runtime class of this `Object`.
` int` ` https://developer.android.com/reference/java/lang/Object#hashCode()() `

Returns a hash code value for the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#notify()() `

Wakes up a single thread that is waiting on this object's monitor.
` final void` ` https://developer.android.com/reference/java/lang/Object#notifyAll()() `

Wakes up all threads that are waiting on this object's monitor.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Object#toString()() `

Returns a string representation of the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait()() `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*.

## Constants

### DEVICE_TYPE_BLUETOOTH

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int DEVICE_TYPE_BLUETOOTH
```

A receiver device type of the route indicating the presentation of the media is happening on a bluetooth device such as a bluetooth speaker.

<br />

**See also:**

- `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#getDeviceType()`

Constant Value: 3 (0x00000003)

### DEVICE_TYPE_SPEAKER

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int DEVICE_TYPE_SPEAKER
```

A receiver device type of the route indicating the presentation of the media is happening on a speaker.

<br />

**See also:**

- `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#getDeviceType()`

Constant Value: 2 (0x00000002)

### DEVICE_TYPE_TV

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int DEVICE_TYPE_TV
```

A receiver device type of the route indicating the presentation of the media is happening on a TV.

<br />

**See also:**

- `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#getDeviceType()`

Constant Value: 1 (0x00000001)

### DEVICE_TYPE_UNKNOWN

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int DEVICE_TYPE_UNKNOWN
```

The default receiver device type of the route indicating the type is unknown.

<br />

**See also:**

- `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#getDeviceType()`

Constant Value: 0 (0x00000000)

### PLAYBACK_TYPE_LOCAL

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int PLAYBACK_TYPE_LOCAL
```

The default playback type, "local", indicating the presentation of the media is happening on the same device (e.g. a phone, a tablet) as where it is controlled from.

<br />

**See also:**

- `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#getPlaybackType()`

Constant Value: 0 (0x00000000)

### PLAYBACK_TYPE_REMOTE

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int PLAYBACK_TYPE_REMOTE
```

A playback type indicating the presentation of the media is happening on a different device (i.e. the remote device) than where it is controlled from.

<br />

**See also:**

- `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#getPlaybackType()`

Constant Value: 1 (0x00000001)

### PLAYBACK_VOLUME_FIXED

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
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.

<br />

**See also:**

- `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#getVolumeHandling()`

Constant Value: 0 (0x00000000)

### PLAYBACK_VOLUME_VARIABLE

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int PLAYBACK_VOLUME_VARIABLE
```

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

<br />

**See also:**

- `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#getVolumeHandling()`

Constant Value: 1 (0x00000001)

## Public methods

### getCategory

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public MediaRouter.RouteCategory getCategory ()
```

<br />

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/MediaRouter.RouteCategory` | the category this route belongs to. <br /> |

### getDescription

Added in [API level 18](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public CharSequence getDescription ()
```

Gets the user-visible description of the route.

The route description describes the kind of destination represented by the route. It may be a user-supplied string, a model number or brand of device.

<br />

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/CharSequence` | The description of the route, or null if none. <br /> |

### getDeviceType

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getDeviceType ()
```

Gets the type of the receiver device associated with this route.

<br />

| Returns ||
|---|---|
| `int` | The type of the receiver device associated with this route: `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#DEVICE_TYPE_BLUETOOTH`, `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#DEVICE_TYPE_TV`, `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#DEVICE_TYPE_SPEAKER`, or `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#DEVICE_TYPE_UNKNOWN`. Value is one of the following: - `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#DEVICE_TYPE_UNKNOWN` - `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#DEVICE_TYPE_TV` - `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#DEVICE_TYPE_SPEAKER` - `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#DEVICE_TYPE_BLUETOOTH` |

### getGroup

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public MediaRouter.RouteGroup getGroup ()
```

<br />

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/MediaRouter.RouteGroup` | The group that this route belongs to. <br /> |

### getIconDrawable

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public Drawable getIconDrawable ()
```

Get the icon representing this route. This icon will be used in picker UIs if available.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/graphics/drawable/Drawable` | the icon representing this route or null if no icon is available <br /> |

### getName

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public CharSequence getName (Context context)
```

Return the properly localized/resource user-visible name of this route.

The route name identifies the destination represented by the route. It may be a user-supplied name, an alias, or device serial number.

<br />

<br />

| Parameters ||
|---|---|
| `context` | `Context`: Context used to resolve the correct configuration to load <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/CharSequence` | The user-visible name of a media route. This is the string presented to users who may select this as the active route. <br /> |

### getName

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public CharSequence getName ()
```

Gets the user-visible name of the route.

The route name identifies the destination represented by the route. It may be a user-supplied name, an alias, or device serial number.

<br />

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/CharSequence` | The user-visible name of a media route. This is the string presented to users who may select this as the active route. <br /> |

### getPlaybackStream

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getPlaybackStream ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | the stream over which the playback associated with this route is performed <br /> |

**See also:**

- `https://developer.android.com/reference/android/media/MediaRouter.UserRouteInfo#setPlaybackStream(int)`

### getPlaybackType

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getPlaybackType ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | the type of playback associated with this route. Value is one of the following: - `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#PLAYBACK_TYPE_LOCAL` - `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#PLAYBACK_TYPE_REMOTE` |

**See also:**

- `https://developer.android.com/reference/android/media/MediaRouter.UserRouteInfo#setPlaybackType(int)`

### getPresentationDisplay

Added in [API level 17](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public Display getPresentationDisplay ()
```

Gets the `https://developer.android.com/reference/android/view/Display` that should be used by the application to show a `https://developer.android.com/reference/android/app/Presentation` on an external display when this route is selected. Depending on the route, this may only be valid if the route is currently selected.

The preferred presentation display may change independently of the route being selected or unselected. For example, the presentation display of the default system route may change when an external HDMI display is connected or disconnected even though the route itself has not changed.

This method may return null if there is no external display associated with the route or if the display is not ready to show UI yet.

The application should listen for changes to the presentation display using the `https://developer.android.com/reference/android/media/MediaRouter.Callback#onRoutePresentationDisplayChanged(android.media.MediaRouter,%20android.media.MediaRouter.RouteInfo)` callback and show or dismiss its `https://developer.android.com/reference/android/app/Presentation` accordingly when the display becomes available or is removed.

This method only makes sense for `https://developer.android.com/reference/android/media/MediaRouter#ROUTE_TYPE_LIVE_VIDEO` routes.

<br />

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/view/Display` | The preferred presentation display to use when this route is selected or null if none. <br /> |

**See also:**

- `https://developer.android.com/reference/android/media/MediaRouter#ROUTE_TYPE_LIVE_VIDEO`
- `https://developer.android.com/reference/android/app/Presentation`

### getStatus

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public CharSequence getStatus ()
```

<br />

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/CharSequence` | The user-visible status for a media route. This may include a description of the currently playing media, if available. <br /> |

### getSupportedTypes

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getSupportedTypes ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | A media type flag set describing which types this route supports. <br /> |

### getTag

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public Object getTag ()
```

<br />

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/Object` | The tag object previously set by the application <br /> |

**See also:**

- `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#setTag(java.lang.Object)`

### getVolume

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getVolume ()
```

Return the current volume for this route. Depending on the route, this may only be valid if the route is currently selected.

<br />

| Returns ||
|---|---|
| `int` | the volume at which the playback associated with this route is performed <br /> |

**See also:**

- `https://developer.android.com/reference/android/media/MediaRouter.UserRouteInfo#setVolume(int)`

### getVolumeHandling

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getVolumeHandling ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | how volume is handling on the route. Value is one of the following: - `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#PLAYBACK_VOLUME_FIXED` - `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#PLAYBACK_VOLUME_VARIABLE` |

**See also:**

- `https://developer.android.com/reference/android/media/MediaRouter.UserRouteInfo#setVolumeHandling(int)`

### getVolumeMax

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getVolumeMax ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | the maximum volume at which the playback associated with this route is performed <br /> |

**See also:**

- `https://developer.android.com/reference/android/media/MediaRouter.UserRouteInfo#setVolumeMax(int)`

### isConnecting

Added in [API level 18](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean isConnecting ()
```

Returns true if the route is in the process of connecting and is not yet ready for use.

<br />

| Returns ||
|---|---|
| `boolean` | True if this route is in the process of connecting. <br /> |

### isEnabled

Added in [API level 17](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean isEnabled ()
```

Returns true if this route is enabled and may be selected.

<br />

| Returns ||
|---|---|
| `boolean` | True if this route is enabled. <br /> |

### requestSetVolume

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void requestSetVolume (int volume)
```

Request a volume change for this route.

<br />

| Parameters ||
|---|---|
| `volume` | `int`: value between 0 and getVolumeMax <br /> |

### requestUpdateVolume

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void requestUpdateVolume (int direction)
```

Request an incremental volume update for this route.

<br />

| Parameters ||
|---|---|
| `direction` | `int`: Delta to apply to the current volume <br /> |

### setTag

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void setTag (Object tag)
```

Set an application-specific tag object for this route. The application may use this to store arbitrary data associated with the route for internal tracking.

Note that the lifespan of a route may be well past the lifespan of an Activity or other Context; take care that objects you store here will not keep more data in memory alive than you intend.

<br />

<br />

| Parameters ||
|---|---|
| `tag` | `Object`: Arbitrary, app-specific data for this route to hold for later use <br /> |

### toString

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public String toString ()
```

Returns a string representation of the object.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | a string representation of the object. <br /> |