# MediaRouteDescriptor.Builder

Artifact: [androidx.mediarouter:mediarouter](https://developer.android.com/jetpack/androidx/releases/mediarouter) [View Source](https://cs.android.com/search?q=file:androidx/mediarouter/media/MediaRouteDescriptor.java+class:androidx.mediarouter.media.MediaRouteDescriptor.Builder) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)

*** ** * ** ***


```
public final class MediaRouteDescriptor.Builder
```

<br />

*** ** * ** ***

Builder for `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor`.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#Builder(androidx.mediarouter.media.MediaRouteDescriptor)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor descriptor)` Creates a media route descriptor builder whose initial contents are copied from an existing descriptor. |
| `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#Builder(java.lang.String,java.lang.String)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/String.html id, @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/String.html name)` Creates a media route descriptor builder. |

| ### Public methods |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder` | `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#addControlFilter(android.content.IntentFilter)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/content/IntentFilter.html filter)` Adds a `https://developer.android.com/reference/androidx/mediarouter/media/MediaControlIntent` filter for the route. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder` | `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#addControlFilters(java.util.Collection<android.content.IntentFilter>)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/util/Collection.html<https://developer.android.com/reference/android/content/IntentFilter.html> filters)` Adds a list of `https://developer.android.com/reference/androidx/mediarouter/media/MediaControlIntent` filters for the route. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor` | `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#build()()` Builds the `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor`. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder` | `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#clearControlFilters()()` Clears `https://developer.android.com/reference/androidx/mediarouter/media/MediaControlIntent` filters for the route. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder` | `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setCanDisconnect(boolean)(boolean canDisconnect)` Sets whether the route can be disconnected without stopping playback. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder` | `[setConnecting](https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setConnecting(boolean))(boolean connecting)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setConnectionState(int)` instead. <br /> |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder` | `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setConnectionState(int)(int connectionState)` Sets the route's connection state. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder` | `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setDeduplicationIds(java.util.Set<java.lang.String>)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/util/Set.html<https://developer.android.com/reference/java/lang/String.html> deduplicationIds)` Sets the route's deduplication ids. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder` | `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setDescription(java.lang.String)(@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html description)` Sets the user-visible description of the route. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder` | `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setDeviceType(int)(int deviceType)` Sets the route's receiver device type. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder` | `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setEnabled(boolean)(boolean enabled)` Sets whether the route is enabled. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder` | `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setExtras(android.os.Bundle)(@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/android/os/Bundle.html extras)` Sets a bundle of extras for this route descriptor. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder` | `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setIconUri(android.net.Uri)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/net/Uri.html iconUri)` Sets the URI of the icon representing this route. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder` | `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setId(java.lang.String)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/String.html id)` Sets the unique id of the route. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder` | `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setIsDynamicGroupRoute(boolean)(boolean isDynamicGroupRoute)` Sets whether the route is a dynamic group route. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder` | `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setName(java.lang.String)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/String.html name)` Sets the user-visible name of the route. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder` | `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setPlaybackStream(int)(int playbackStream)` Sets the route's playback stream. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder` | `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setPlaybackType(int)(int playbackType)` Sets the route's playback type. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder` | `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setPresentationDisplayId(int)(int presentationDisplayId)` Sets the route's presentation display id, or -1 if none. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder` | `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setRequiredPermissions(java.util.List<java.util.Set<java.lang.String>>)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/util/Set.html<https://developer.android.com/reference/java/lang/String.html>> requiresOneOf)` Limits the visibility of this route to holders of one of a set of permissions. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder` | `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setRoutingControllerId(java.lang.String)(@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html routingControllerId)` Sets the routing controller id. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder` | `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setSettingsActivity(android.content.IntentSender)(@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/android/content/IntentSender.html is)` Sets an intent sender for launching the settings activity for this route. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder` | `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setVisibilityPublic()()` Sets the visibility of this route to public. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder` | `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setVisibilityRestricted(java.util.Set<java.lang.String>)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/util/Set.html<https://developer.android.com/reference/java/lang/String.html> allowedPackages)` Sets the visibility of this route to restricted. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder` | `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setVolume(int)(int volume)` Sets the route's current volume, or 0 if unknown. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder` | `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setVolumeHandling(int)(int volumeHandling)` Sets the route's volume handling. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder` | `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setVolumeMax(int)(int volumeMax)` Sets the route's maximum volume, or 0 if unknown. |

## Public constructors

### Builder

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)

```
public Builder(@NonNull MediaRouteDescriptor descriptor)
```

Creates a media route descriptor builder whose initial contents are copied from an existing descriptor.

### Builder

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)

```
public Builder(@NonNull String id, @NonNull String name)
```

Creates a media route descriptor builder.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/String.html id` | The unique id of the route. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/String.html name` | The user-visible name of the route. |

## Public methods

### addControlFilter

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)

```
public @NonNull MediaRouteDescriptor.Builder addControlFilter(@NonNull IntentFilter filter)
```

Adds a `https://developer.android.com/reference/androidx/mediarouter/media/MediaControlIntent` filter for the route.

### addControlFilters

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)

```
public @NonNull MediaRouteDescriptor.Builder addControlFilters(@NonNull Collection<IntentFilter> filters)
```

Adds a list of `https://developer.android.com/reference/androidx/mediarouter/media/MediaControlIntent` filters for the route.

### build

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)

```
public @NonNull MediaRouteDescriptor build()
```

Builds the `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor`.

### clearControlFilters

Added in [1.4.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.4.0)

```
public @NonNull MediaRouteDescriptor.Builder clearControlFilters()
```

Clears `https://developer.android.com/reference/androidx/mediarouter/media/MediaControlIntent` filters for the route.

### setCanDisconnect

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)

```
public @NonNull MediaRouteDescriptor.Builder setCanDisconnect(boolean canDisconnect)
```

Sets whether the route can be disconnected without stopping playback.

### setConnecting

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)

```
public @NonNull MediaRouteDescriptor.Builder [setConnecting](https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setConnecting(boolean))(boolean connecting)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setConnectionState(int)` instead.

Sets whether the route is in the process of connecting and is not yet ready for use.

### setConnectionState

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)

```
public @NonNull MediaRouteDescriptor.Builder setConnectionState(int connectionState)
```

Sets the route's connection state.

| Parameters |
|---|---|
| `int connectionState` | The connection state of the route: `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouter.RouteInfo#CONNECTION_STATE_DISCONNECTED()`, `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouter.RouteInfo#CONNECTION_STATE_CONNECTING()`, or `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouter.RouteInfo#CONNECTION_STATE_CONNECTED()`. |

### setDeduplicationIds

Added in [1.6.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.6.0)

```
public @NonNull MediaRouteDescriptor.Builder setDeduplicationIds(@NonNull Set<String> deduplicationIds)
```

Sets the route's deduplication ids.

Two routes are considered to come from the same receiver device if any of their respective deduplication ids match.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/util/Set.html<https://developer.android.com/reference/java/lang/String.html> deduplicationIds` | A set of strings that uniquely identify the receiver device that backs this route. |

### setDescription

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)

```
public @NonNull MediaRouteDescriptor.Builder setDescription(@Nullable String description)
```

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

### setDeviceType

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)

```
public @NonNull MediaRouteDescriptor.Builder setDeviceType(int deviceType)
```

Sets the route's receiver device type.

| Parameters |
|---|---|
| `int deviceType` | The type of the receiver device. |

### setEnabled

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)

```
public @NonNull MediaRouteDescriptor.Builder setEnabled(boolean enabled)
```

Sets whether the route is enabled.

Disabled routes represent routes that a route provider knows about, such as paired Wifi Display receivers, but that are not currently available for use.

### setExtras

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)

```
public @NonNull MediaRouteDescriptor.Builder setExtras(@Nullable Bundle extras)
```

Sets a bundle of extras for this route descriptor. The extras will be ignored by the media router but they may be used by applications.

### setIconUri

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)

```
public @NonNull MediaRouteDescriptor.Builder setIconUri(@NonNull Uri iconUri)
```

Sets the URI of the icon representing this route.

This icon will be used in picker UIs if available.

The URI must be one of the following formats:

- content (`https://developer.android.com/reference/android/content/ContentResolver.html#SCHEME_CONTENT`)
- android.resource (`https://developer.android.com/reference/android/content/ContentResolver.html#SCHEME_ANDROID_RESOURCE`)
- file (`https://developer.android.com/reference/android/content/ContentResolver.html#SCHEME_FILE`)

### setId

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)

```
public @NonNull MediaRouteDescriptor.Builder setId(@NonNull String id)
```

Sets the unique id of the route.

The route id associated with a route descriptor functions as a stable identifier for the route and must be unique among all routes offered by the provider.

### setIsDynamicGroupRoute

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)

```
public @NonNull MediaRouteDescriptor.Builder setIsDynamicGroupRoute(boolean isDynamicGroupRoute)
```

Sets whether the route is a dynamic group route.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor#isDynamicGroupRoute()` |   |

### setName

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)

```
public @NonNull MediaRouteDescriptor.Builder setName(@NonNull String name)
```

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

### setPlaybackStream

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)

```
public @NonNull MediaRouteDescriptor.Builder setPlaybackStream(int playbackStream)
```

Sets the route's playback stream.

### setPlaybackType

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)

```
public @NonNull MediaRouteDescriptor.Builder setPlaybackType(int playbackType)
```

Sets the route's playback type.

| Parameters |
|---|---|
| `int playbackType` | The playback type of the route: `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouter.RouteInfo#PLAYBACK_TYPE_LOCAL()` or `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouter.RouteInfo#PLAYBACK_TYPE_REMOTE()`. |

### setPresentationDisplayId

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)

```
public @NonNull MediaRouteDescriptor.Builder setPresentationDisplayId(int presentationDisplayId)
```

Sets the route's presentation display id, or -1 if none.

### setRequiredPermissions

Added in [1.9.0-rc01](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.9.0-rc01)

```
public @NonNull MediaRouteDescriptor.Builder setRequiredPermissions(@NonNull List<Set<String>> requiresOneOf)
```

Limits the visibility of this route to holders of one of a set of permissions.

Calls to this method override any previous calls of `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setRequiredPermissions(java.util.List<java.util.Set<java.lang.String>>)`.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/util/Set.html<https://developer.android.com/reference/java/lang/String.html>> requiresOneOf` | a list of Sets of permissions. Holding all permissions in at least one of the Sets is required for the route to be visible. |

### setRoutingControllerId

Added in [1.9.0-rc01](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.9.0-rc01)

```
public @NonNull MediaRouteDescriptor.Builder setRoutingControllerId(@Nullable String routingControllerId)
```

Sets the routing controller id.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html routingControllerId` | Sets the routing controller id. May be null if not applicable. |

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor#getRoutingControllerId()` |   |

### setSettingsActivity

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)

```
public @NonNull MediaRouteDescriptor.Builder setSettingsActivity(@Nullable IntentSender is)
```

Sets an intent sender for launching the settings activity for this route.

### setVisibilityPublic

Added in [1.6.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.6.0)

```
public @NonNull MediaRouteDescriptor.Builder setVisibilityPublic()
```

Sets the visibility of this route to public.

By default, unless you call `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setVisibilityRestricted(java.util.Set<java.lang.String>)`, the new route will be public.

Public routes are visible to any application with a matching `https://developer.android.com/reference/android/media/RouteDiscoveryPreference.html#getPreferredFeatures()`.

Calls to this method override previous calls to `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setVisibilityPublic()` and `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setVisibilityRestricted(java.util.Set<java.lang.String>)`.

### setVisibilityRestricted

Added in [1.6.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.6.0)

```
public @NonNull MediaRouteDescriptor.Builder setVisibilityRestricted(@NonNull Set<String> allowedPackages)
```

Sets the visibility of this route to restricted.

Routes with restricted visibility are only visible to its publisher application and applications whose package name is included in the provided `allowedPackages` set with a matching `https://developer.android.com/reference/android/media/RouteDiscoveryPreference.html#getPreferredFeatures()`.

Calls to this method override previous calls to `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setVisibilityPublic()` and `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setVisibilityRestricted(java.util.Set<java.lang.String>)`.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/util/Set.html<https://developer.android.com/reference/java/lang/String.html> allowedPackages` | set of package names which are allowed to see this route. |

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteDescriptor.Builder#setVisibilityPublic()` |   |

### setVolume

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)

```
public @NonNull MediaRouteDescriptor.Builder setVolume(int volume)
```

Sets the route's current volume, or 0 if unknown.

### setVolumeHandling

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)

```
public @NonNull MediaRouteDescriptor.Builder setVolumeHandling(int volumeHandling)
```

Sets the route's volume handling.

| Parameters |
|---|---|
| `int volumeHandling` | how volume is handled on the route: `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouter.RouteInfo#PLAYBACK_VOLUME_FIXED()` or `https://developer.android.com/reference/androidx/mediarouter/media/MediaRouter.RouteInfo#PLAYBACK_VOLUME_VARIABLE()`. |

### setVolumeMax

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)

```
public @NonNull MediaRouteDescriptor.Builder setVolumeMax(int volumeMax)
```

Sets the route's maximum volume, or 0 if unknown.