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

# MediaRouter.UserRouteInfo

*** ** * ** ***


`
public
static


class
MediaRouter.UserRouteInfo
`


`


`

`

extends https://developer.android.com/reference/android/media/MediaRouter.RouteInfo


`

`


`

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

<br />

*** ** * ** ***

Information about a route that the application may define and modify.
A user route defaults to `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#PLAYBACK_TYPE_REMOTE` and
`https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#PLAYBACK_VOLUME_FIXED`.
**See also:**

- `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo`

## Summary

| ### Inherited constants |
|---|
| From class `https://developer.android.com/reference/android/media/MediaRouter.RouteInfo` |---|---| | `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/RemoteControlClient` | ` https://developer.android.com/reference/android/media/MediaRouter.UserRouteInfo#getRemoteControlClient()() ` Retrieve the RemoteControlClient associated with this route, if one has been set. |
| ` void` | ` https://developer.android.com/reference/android/media/MediaRouter.UserRouteInfo#requestSetVolume(int)(int volume) ` Request a volume change for this route. |
| ` void` | ` https://developer.android.com/reference/android/media/MediaRouter.UserRouteInfo#requestUpdateVolume(int)(int direction) ` Request an incremental volume update for this route. |
| ` void` | ` https://developer.android.com/reference/android/media/MediaRouter.UserRouteInfo#setDescription(java.lang.CharSequence)(https://developer.android.com/reference/java/lang/CharSequence description) ` Set the user-visible description of this route. |
| ` void` | ` https://developer.android.com/reference/android/media/MediaRouter.UserRouteInfo#setIconDrawable(android.graphics.drawable.Drawable)(https://developer.android.com/reference/android/graphics/drawable/Drawable icon) ` Set an icon that will be used to represent this route. |
| ` void` | ` https://developer.android.com/reference/android/media/MediaRouter.UserRouteInfo#setIconResource(int)(int resId) ` Set an icon that will be used to represent this route. |
| ` void` | ` https://developer.android.com/reference/android/media/MediaRouter.UserRouteInfo#setName(java.lang.CharSequence)(https://developer.android.com/reference/java/lang/CharSequence name) ` Set the user-visible name of this route. |
| ` void` | ` https://developer.android.com/reference/android/media/MediaRouter.UserRouteInfo#setName(int)(int resId) ` Set the user-visible name of this route. |
| ` void` | ` https://developer.android.com/reference/android/media/MediaRouter.UserRouteInfo#setPlaybackStream(int)(int stream) ` Defines over what stream type the media is presented. |
| ` void` | ` https://developer.android.com/reference/android/media/MediaRouter.UserRouteInfo#setPlaybackType(int)(int type) ` Defines whether playback associated with this route is "local" (`https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#PLAYBACK_TYPE_LOCAL`) or "remote" (`https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#PLAYBACK_TYPE_REMOTE`). |
| ` void` | ` https://developer.android.com/reference/android/media/MediaRouter.UserRouteInfo#setRemoteControlClient(android.media.RemoteControlClient)(https://developer.android.com/reference/android/media/RemoteControlClient rcc) ` Set the RemoteControlClient responsible for reporting playback info for this user route. |
| ` void` | ` https://developer.android.com/reference/android/media/MediaRouter.UserRouteInfo#setStatus(java.lang.CharSequence)(https://developer.android.com/reference/java/lang/CharSequence status) ` Set the current user-visible status for this route. |
| ` void` | ` https://developer.android.com/reference/android/media/MediaRouter.UserRouteInfo#setVolume(int)(int volume) ` Defines at what volume the playback associated with this route is performed (for user feedback purposes). |
| ` void` | ` https://developer.android.com/reference/android/media/MediaRouter.UserRouteInfo#setVolumeCallback(android.media.MediaRouter.VolumeCallback)(https://developer.android.com/reference/android/media/MediaRouter.VolumeCallback vcb) ` Set a callback to be notified of volume update requests |
| ` void` | ` https://developer.android.com/reference/android/media/MediaRouter.UserRouteInfo#setVolumeHandling(int)(int volumeHandling) ` Defines whether volume for the playback associated with this route is fixed (`https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#PLAYBACK_VOLUME_FIXED`) or can modified (`https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#PLAYBACK_VOLUME_VARIABLE`). |
| ` void` | ` https://developer.android.com/reference/android/media/MediaRouter.UserRouteInfo#setVolumeMax(int)(int volumeMax) ` Defines the maximum volume at which the playback associated with this route is performed (for user feedback purposes). |

| ### Inherited methods |
|---|---|
| From class ` https://developer.android.com/reference/android/media/MediaRouter.RouteInfo ` |---|---| | ` 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. | ||
| 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*. | ||

## Public methods

### getRemoteControlClient

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

```
public RemoteControlClient getRemoteControlClient ()
```

Retrieve the RemoteControlClient associated with this route, if one has been set.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/RemoteControlClient` | the RemoteControlClient associated with this route <br /> |

**See also:**

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

### 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 /> |

### setDescription

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

```
public void setDescription (CharSequence description)
```

Set the user-visible description of this 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 />

| Parameters ||
|---|---|
| `description` | `CharSequence`: The description of the route, or null if none. <br /> |

### setIconDrawable

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

```
public void setIconDrawable (Drawable icon)
```

Set an icon that will be used to represent this route.
The system may use this icon in picker UIs or similar.

<br />

| Parameters ||
|---|---|
| `icon` | `Drawable`: icon drawable to use to represent this route <br /> |

### setIconResource

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

```
public void setIconResource (int resId)
```

Set an icon that will be used to represent this route.
The system may use this icon in picker UIs or similar.

<br />

| Parameters ||
|---|---|
| `resId` | `int`: Resource ID of an icon drawable to use to represent this route <br /> |

### setName

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

```
public void setName (CharSequence name)
```

Set the user-visible name of this route.

<br />

| Parameters ||
|---|---|
| `name` | `CharSequence`: Name to display to the user to describe this route <br /> |

### setName

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

```
public void setName (int resId)
```

Set the 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 ||
|---|---|
| `resId` | `int`: Resource ID of the name to display to the user to describe this route <br /> |

### setPlaybackStream

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

```
public void setPlaybackStream (int stream)
```

Defines over what stream type the media is presented.

<br />

### setPlaybackType

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

```
public void setPlaybackType (int type)
```

Defines whether playback associated with this route is "local"
(`https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#PLAYBACK_TYPE_LOCAL`) or "remote"
(`https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#PLAYBACK_TYPE_REMOTE`).

<br />

| Parameters ||
|---|---|
| `type` | `int`: 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` |

### setRemoteControlClient

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

```
public void setRemoteControlClient (RemoteControlClient rcc)
```

Set the RemoteControlClient responsible for reporting playback info for this
user route.

If this route manages remote playback, the data exposed by this
RemoteControlClient will be used to reflect and update information
such as route volume info in related UIs.

The RemoteControlClient must have been previously registered with
`https://developer.android.com/reference/android/media/AudioManager#registerRemoteControlClient(android.media.RemoteControlClient)`.

<br />

<br />

| Parameters ||
|---|---|
| `rcc` | `RemoteControlClient`: RemoteControlClient associated with this route <br /> |

### setStatus

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

```
public void setStatus (CharSequence status)
```

Set the current user-visible status for this route.

<br />

| Parameters ||
|---|---|
| `status` | `CharSequence`: Status to display to the user to describe what the endpoint of this route is currently doing <br /> |

### setVolume

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

```
public void setVolume (int volume)
```

Defines at what volume the playback associated with this route is performed (for user
feedback purposes). This information is only used when the playback is not local.

<br />

### setVolumeCallback

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

```
public void setVolumeCallback (MediaRouter.VolumeCallback vcb)
```

Set a callback to be notified of volume update requests

<br />

### setVolumeHandling

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

```
public void setVolumeHandling (int volumeHandling)
```

Defines whether volume for the playback associated with this route is fixed
(`https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#PLAYBACK_VOLUME_FIXED`) or can modified
(`https://developer.android.com/reference/android/media/MediaRouter.RouteInfo#PLAYBACK_VOLUME_VARIABLE`).

<br />

| Parameters ||
|---|---|
| `volumeHandling` | `int`: 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` |

### setVolumeMax

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

```
public void setVolumeMax (int volumeMax)
```

Defines the maximum volume at which the playback associated with this route is performed
(for user feedback purposes). This information is only used when the playback is not
local.

<br />