Android APIs
public static final class

MediaRouter.RouteInfo

extends Object
java.lang.Object
   ↳ android.support.v7.media.MediaRouter.RouteInfo

Class Overview

Provides information about a media route.

Each media route has a list of media control intent filters that describe the capabilities of the route and the manner in which it is used and controlled.

Summary

Constants
int PLAYBACK_TYPE_LOCAL The default playback type, "local", indicating the presentation of the media is happening on the same device (e.g.
int PLAYBACK_TYPE_REMOTE A playback type indicating the presentation of the media is happening on a different device (i.e.
int PLAYBACK_VOLUME_FIXED Playback information indicating the playback volume is fixed, i.e.
int PLAYBACK_VOLUME_VARIABLE Playback information indicating the playback volume is variable and can be controlled from this object.
Public Methods
boolean canDisconnect()
Gets whether this route supports disconnecting without interrupting playback.
List<IntentFilter> getControlFilters()
Gets a list of media control intent filters that describe the capabilities of this route and the media control actions that it supports.
String getDescription()
Gets the user-visible description of the route.
Bundle getExtras()
Gets a collection of extra properties about this route that were supplied by its media route provider, or null if none.
String getId()
Gets the unique id of the route.
String getName()
Gets the user-visible name of the route.
int getPlaybackStream()
Gets the audio stream over which the playback associated with this route is performed.
int getPlaybackType()
Gets the type of playback associated with this route.
Display getPresentationDisplay()
Gets the Display that should be used by the application to show a Presentation on an external display when this route is selected.
MediaRouter.ProviderInfo getProvider()
Gets information about the provider of this media route.
IntentSender getSettingsIntent()
Gets an intent sender for launching a settings activity for this route.
int getVolume()
Gets the current volume for this route.
int getVolumeHandling()
Gets information about how volume is handled on the route.
int getVolumeMax()
Gets the maximum volume at which the playback associated with this route is performed.
boolean isConnecting()
Returns true if the route is in the process of connecting and is not yet ready for use.
boolean isDefault()
Returns true if this route is the default route.
boolean isEnabled()
Returns true if this route is enabled and may be selected.
boolean isSelected()
Returns true if this route is currently selected.
boolean matchesSelector(MediaRouteSelector selector)
Returns true if the route supports at least one of the capabilities described by a media route selector.
void requestSetVolume(int volume)
Requests a volume change for this route asynchronously.
void requestUpdateVolume(int delta)
Requests an incremental volume update for this route asynchronously.
void select()
Selects this media route.
void sendControlRequest(Intent intent, MediaRouter.ControlRequestCallback callback)
Sends a media control request to be performed asynchronously by the route's destination.
boolean supportsControlAction(String category, String action)
Returns true if the route supports the specified media control category and action.
boolean supportsControlCategory(String category)
Returns true if the route supports the specified media control category.
boolean supportsControlRequest(Intent intent)
Returns true if the route supports the specified media control request.
String toString()
Returns a string containing a concise, human-readable description of this object.
[Expand]
Inherited Methods
From class java.lang.Object

Constants

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.

Constant Value: 0 (0x00000000)

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.

Constant Value: 1 (0x00000001)

public static final int PLAYBACK_VOLUME_FIXED

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

Constant Value: 0 (0x00000000)

public static final int PLAYBACK_VOLUME_VARIABLE

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

Constant Value: 1 (0x00000001)

Public Methods

public boolean canDisconnect ()

Gets whether this route supports disconnecting without interrupting playback.

Returns
  • True if this route can disconnect without stopping playback, false otherwise.

public List<IntentFilter> getControlFilters ()

Gets a list of media control intent filters that describe the capabilities of this route and the media control actions that it supports.

Returns
  • A list of intent filters that specifies the media control intents that this route supports.

public String 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.

Returns
  • The description of the route, or null if none.

public Bundle getExtras ()

Gets a collection of extra properties about this route that were supplied by its media route provider, or null if none.

public String getId ()

Gets the unique id of the route.

The route unique id functions as a stable identifier by which the route is known. For example, an application can use this id as a token to remember the selected route across restarts or to communicate its identity to a service.

Returns
  • The unique id of the route, never null.

public String 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.

Returns
  • The user-visible name of a media route. This is the string presented to users who may select this as the active route.

public int getPlaybackStream ()

Gets the audio stream over which the playback associated with this route is performed.

Returns
  • The stream over which the playback associated with this route is performed.

public int getPlaybackType ()

Gets the type of playback associated with this route.

Returns

public Display getPresentationDisplay ()

Gets the Display that should be used by the application to show a 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 onRoutePresentationDisplayChanged(MediaRouter, MediaRouter.RouteInfo) callback and show or dismiss its Presentation accordingly when the display becomes available or is removed.

This method only makes sense for live video routes.

Returns
  • The preferred presentation display to use when this route is selected or null if none.

public MediaRouter.ProviderInfo getProvider ()

Gets information about the provider of this media route.

public IntentSender getSettingsIntent ()

Gets an intent sender for launching a settings activity for this route.

public int getVolume ()

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

Returns
  • The volume at which the playback associated with this route is performed.

public int getVolumeHandling ()

Gets information about how volume is handled on the route.

Returns

public int getVolumeMax ()

Gets the maximum volume at which the playback associated with this route is performed.

Returns
  • The maximum volume at which the playback associated with this route is performed.

public boolean isConnecting ()

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

Returns
  • True if this route is in the process of connecting.

public boolean isDefault ()

Returns true if this route is the default route.

Returns
  • True if this route is the default route.

public boolean isEnabled ()

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

Returns
  • True if this route is enabled.

public boolean isSelected ()

Returns true if this route is currently selected.

Returns
  • True if this route is currently selected.

public boolean matchesSelector (MediaRouteSelector selector)

Returns true if the route supports at least one of the capabilities described by a media route selector.

Parameters
selector The selector that specifies the capabilities to check.
Returns
  • True if the route supports at least one of the capabilities described in the media route selector.

public void requestSetVolume (int volume)

Requests a volume change for this route asynchronously.

This function may only be called on a selected route. It will have no effect if the route is currently unselected.

Parameters
volume The new volume value between 0 and getVolumeMax().

public void requestUpdateVolume (int delta)

Requests an incremental volume update for this route asynchronously.

This function may only be called on a selected route. It will have no effect if the route is currently unselected.

Parameters
delta The delta to add to the current volume.

public void select ()

Selects this media route.

public void sendControlRequest (Intent intent, MediaRouter.ControlRequestCallback callback)

Sends a media control request to be performed asynchronously by the route's destination.

Media control requests are used to request the route to perform actions such as starting remote playback of a media item.

This function may only be called on a selected route. Control requests sent to unselected routes will fail.

Parameters
intent A media control intent.
callback A MediaRouter.ControlRequestCallback to invoke with the result of the request, or null if no result is required.

public boolean supportsControlAction (String category, String action)

Returns true if the route supports the specified media control category and action.

Media control actions describe specific requests that an application can ask a route to perform.

Parameters
category A media control category such as CATEGORY_LIVE_AUDIO, CATEGORY_LIVE_VIDEO, CATEGORY_REMOTE_PLAYBACK, or a provider-defined media control category.
action A media control action such as ACTION_PLAY.
Returns
  • True if the route supports the specified intent action.

public boolean supportsControlCategory (String category)

Returns true if the route supports the specified media control category.

Media control categories describe the capabilities of this route such as whether it supports live audio streaming or remote playback.

Parameters
category A media control category such as CATEGORY_LIVE_AUDIO, CATEGORY_LIVE_VIDEO, CATEGORY_REMOTE_PLAYBACK, or a provider-defined media control category.
Returns
  • True if the route supports the specified intent category.

public boolean supportsControlRequest (Intent intent)

Returns true if the route supports the specified media control request.

Media control requests are used to request the route to perform actions such as starting remote playback of a media item.

Parameters
intent A media control intent.
Returns
  • True if the route can handle the specified intent.

public String toString ()

Returns a string containing a concise, human-readable description of this object. Subclasses are encouraged to override this method and provide an implementation that takes into account the object's type and data. The default implementation is equivalent to the following expression:

   getClass().getName() + '@' + Integer.toHexString(hashCode())

See Writing a useful toString method if you intend implementing your own toString method.

Returns
  • a printable representation of this object.