# MediaRouter.Callback

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

# Callback

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/android/media/MediaRouter.Callback "View this page in Java")  

```
abstract class Callback
```

|---|--------------------------------------------------------------------------------------------------------------------------|
| [kotlin.Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)                                           ||
| ↳ | [android.media.MediaRouter.Callback](https://developer.android.com/reference/kotlin/android/media/MediaRouter.Callback#) |

|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Known Direct Subclasses [MediaRouter.SimpleCallback](https://developer.android.com/reference/kotlin/android/media/MediaRouter.SimpleCallback) |-----------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------| | [MediaRouter.SimpleCallback](https://developer.android.com/reference/kotlin/android/media/MediaRouter.SimpleCallback) | Stub implementation of[MediaRouter.Callback](https://developer.android.com/reference/kotlin/android/media/MediaRouter.Callback#). | |

Interface for receiving events about media routing changes. All methods of this interface will be called from the application's main thread.

A Callback will only receive events relevant to routes that the callback was registered for unless the[MediaRouter.CALLBACK_FLAG_UNFILTERED_EVENTS](https://developer.android.com/reference/kotlin/android/media/MediaRouter#CALLBACK_FLAG_UNFILTERED_EVENTS:kotlin.Int)flag was specified in[MediaRouter.addCallback(int, Callback, int)](https://developer.android.com/reference/kotlin/android/media/MediaRouter#addCallback(kotlin.Int,%20android.media.MediaRouter.Callback,%20kotlin.Int)).

## Summary

|                                                  Public constructors                                                   ||
|---------------------------------------------------------------------------------------------------------------------|---|
| [Callback](https://developer.android.com/reference/kotlin/android/media/MediaRouter.Callback#Callback())`()` <br /> |

|                                                                                                                                                                                                                                                                                                                                                                                                       Public methods                                                                                                                                                                                                                                                                                                                                                                                                        ||
|--------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| abstract[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onRouteAdded](https://developer.android.com/reference/kotlin/android/media/MediaRouter.Callback#onRouteAdded(android.media.MediaRouter,%20android.media.MediaRouter.RouteInfo))`(`router:` `[MediaRouter](https://developer.android.com/reference/kotlin/android/media/MediaRouter)!`, `info:` `[MediaRouter.RouteInfo](https://developer.android.com/reference/kotlin/android/media/MediaRouter.RouteInfo)!`)` Called when a route for the specified type was added.                                                                                                                                                                                                                                                                |
| abstract[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onRouteChanged](https://developer.android.com/reference/kotlin/android/media/MediaRouter.Callback#onRouteChanged(android.media.MediaRouter,%20android.media.MediaRouter.RouteInfo))`(`router:` `[MediaRouter](https://developer.android.com/reference/kotlin/android/media/MediaRouter)!`, `info:` `[MediaRouter.RouteInfo](https://developer.android.com/reference/kotlin/android/media/MediaRouter.RouteInfo)!`)` Called when an aspect of the indicated route has changed.                                                                                                                                                                                                                                                        |
| abstract[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onRouteGrouped](https://developer.android.com/reference/kotlin/android/media/MediaRouter.Callback#onRouteGrouped(android.media.MediaRouter,%20android.media.MediaRouter.RouteInfo,%20android.media.MediaRouter.RouteGroup,%20kotlin.Int))`(`router:` `[MediaRouter](https://developer.android.com/reference/kotlin/android/media/MediaRouter)!`, `info:` `[MediaRouter.RouteInfo](https://developer.android.com/reference/kotlin/android/media/MediaRouter.RouteInfo)!`, `group:` `[MediaRouter.RouteGroup](https://developer.android.com/reference/kotlin/android/media/MediaRouter.RouteGroup)!`, `index:` `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)` Called when a route is added to a group. |
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)     | [onRoutePresentationDisplayChanged](https://developer.android.com/reference/kotlin/android/media/MediaRouter.Callback#onRoutePresentationDisplayChanged(android.media.MediaRouter,%20android.media.MediaRouter.RouteInfo))`(`router:` `[MediaRouter](https://developer.android.com/reference/kotlin/android/media/MediaRouter)!`, `info:` `[MediaRouter.RouteInfo](https://developer.android.com/reference/kotlin/android/media/MediaRouter.RouteInfo)!`)` Called when a route's presentation display changes.                                                                                                                                                                                                                        |
| abstract[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onRouteRemoved](https://developer.android.com/reference/kotlin/android/media/MediaRouter.Callback#onRouteRemoved(android.media.MediaRouter,%20android.media.MediaRouter.RouteInfo))`(`router:` `[MediaRouter](https://developer.android.com/reference/kotlin/android/media/MediaRouter)!`, `info:` `[MediaRouter.RouteInfo](https://developer.android.com/reference/kotlin/android/media/MediaRouter.RouteInfo)!`)` Called when a route for the specified type was removed.                                                                                                                                                                                                                                                          |
| abstract[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onRouteSelected](https://developer.android.com/reference/kotlin/android/media/MediaRouter.Callback#onRouteSelected(android.media.MediaRouter,%20kotlin.Int,%20android.media.MediaRouter.RouteInfo))`(`router:` `[MediaRouter](https://developer.android.com/reference/kotlin/android/media/MediaRouter)!`, `type:` `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, `info:` `[MediaRouter.RouteInfo](https://developer.android.com/reference/kotlin/android/media/MediaRouter.RouteInfo)!`)` Called when the supplied route becomes selected as the active route for the given route type.                                                                                                              |
| abstract[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onRouteUngrouped](https://developer.android.com/reference/kotlin/android/media/MediaRouter.Callback#onRouteUngrouped(android.media.MediaRouter,%20android.media.MediaRouter.RouteInfo,%20android.media.MediaRouter.RouteGroup))`(`router:` `[MediaRouter](https://developer.android.com/reference/kotlin/android/media/MediaRouter)!`, `info:` `[MediaRouter.RouteInfo](https://developer.android.com/reference/kotlin/android/media/MediaRouter.RouteInfo)!`, `group:` `[MediaRouter.RouteGroup](https://developer.android.com/reference/kotlin/android/media/MediaRouter.RouteGroup)!`)` Called when a route is removed from a group.                                                                                              |
| abstract[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onRouteUnselected](https://developer.android.com/reference/kotlin/android/media/MediaRouter.Callback#onRouteUnselected(android.media.MediaRouter,%20kotlin.Int,%20android.media.MediaRouter.RouteInfo))`(`router:` `[MediaRouter](https://developer.android.com/reference/kotlin/android/media/MediaRouter)!`, `type:` `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, `info:` `[MediaRouter.RouteInfo](https://developer.android.com/reference/kotlin/android/media/MediaRouter.RouteInfo)!`)` Called when the supplied route becomes unselected as the active route for the given route type.                                                                                                        |
| abstract[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onRouteVolumeChanged](https://developer.android.com/reference/kotlin/android/media/MediaRouter.Callback#onRouteVolumeChanged(android.media.MediaRouter,%20android.media.MediaRouter.RouteInfo))`(`router:` `[MediaRouter](https://developer.android.com/reference/kotlin/android/media/MediaRouter)!`, `info:` `[MediaRouter.RouteInfo](https://developer.android.com/reference/kotlin/android/media/MediaRouter.RouteInfo)!`)` Called when a route's volume changes.                                                                                                                                                                                                                                                                |

## Public constructors

### Callback

```
Callback()
```

## Public methods

### onRouteAdded

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

```
abstract fun onRouteAdded(
    router: MediaRouter!, 
    info: MediaRouter.RouteInfo!
): Unit
```

Called when a route for the specified type was added.

|                                                                           Parameters                                                                           ||
|----------|------------------------------------------------------------------------------------------------------------------------------------------------------|
| `router` | [MediaRouter](https://developer.android.com/reference/kotlin/android/media/MediaRouter)!:the MediaRouter reporting the event                         |
| `info`   | [MediaRouter.RouteInfo](https://developer.android.com/reference/kotlin/android/media/MediaRouter.RouteInfo)!:Route that has become available for use |

### onRouteChanged

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

```
abstract fun onRouteChanged(
    router: MediaRouter!, 
    info: MediaRouter.RouteInfo!
): Unit
```

Called when an aspect of the indicated route has changed.

This will not indicate that the types supported by this route have changed, only that cosmetic info such as name or status have been updated.

|                                                                    Parameters                                                                     ||
|----------|-----------------------------------------------------------------------------------------------------------------------------------------|
| `router` | [MediaRouter](https://developer.android.com/reference/kotlin/android/media/MediaRouter)!:the MediaRouter reporting the event            |
| `info`   | [MediaRouter.RouteInfo](https://developer.android.com/reference/kotlin/android/media/MediaRouter.RouteInfo)!:The route that was changed |

### onRouteGrouped

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

```
abstract fun onRouteGrouped(
    router: MediaRouter!, 
    info: MediaRouter.RouteInfo!, 
    group: MediaRouter.RouteGroup!, 
    index: Int
): Unit
```

Called when a route is added to a group.

|                                                                        Parameters                                                                         ||
|----------|-------------------------------------------------------------------------------------------------------------------------------------------------|
| `router` | [MediaRouter](https://developer.android.com/reference/kotlin/android/media/MediaRouter)!:the MediaRouter reporting the event                    |
| `info`   | [MediaRouter.RouteInfo](https://developer.android.com/reference/kotlin/android/media/MediaRouter.RouteInfo)!:The route that was added           |
| `group`  | [MediaRouter.RouteGroup](https://developer.android.com/reference/kotlin/android/media/MediaRouter.RouteGroup)!:The group the route was added to |
| `index`  | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html):The route index within group that info was added at                  |

### onRoutePresentationDisplayChanged

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

```
open fun onRoutePresentationDisplayChanged(
    router: MediaRouter!, 
    info: MediaRouter.RouteInfo!
): Unit
```

Called when a route's presentation display changes.

This method is called whenever the route's presentation display becomes available, is removes or has changes to some of its properties (such as its size).

|                                                                             Parameters                                                                              ||
|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|
| `router` | [MediaRouter](https://developer.android.com/reference/kotlin/android/media/MediaRouter)!:the MediaRouter reporting the event                              |
| `info`   | [MediaRouter.RouteInfo](https://developer.android.com/reference/kotlin/android/media/MediaRouter.RouteInfo)!:The route whose presentation display changed |

**See Also**

- [android.media.MediaRouter.RouteInfo#getPresentationDisplay()](https://developer.android.com/reference/kotlin/android/media/MediaRouter.RouteInfo#getPresentationDisplay())  

### onRouteRemoved

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

```
abstract fun onRouteRemoved(
    router: MediaRouter!, 
    info: MediaRouter.RouteInfo!
): Unit
```

Called when a route for the specified type was removed.

|                                                                              Parameters                                                                              ||
|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `router` | [MediaRouter](https://developer.android.com/reference/kotlin/android/media/MediaRouter)!:the MediaRouter reporting the event                               |
| `info`   | [MediaRouter.RouteInfo](https://developer.android.com/reference/kotlin/android/media/MediaRouter.RouteInfo)!:Route that has been removed from availability |

### onRouteSelected

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

```
abstract fun onRouteSelected(
    router: MediaRouter!, 
    type: Int, 
    info: MediaRouter.RouteInfo!
): Unit
```

Called when the supplied route becomes selected as the active route for the given route type.

|                                                                                  Parameters                                                                                   ||
|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `router` | [MediaRouter](https://developer.android.com/reference/kotlin/android/media/MediaRouter)!:the MediaRouter reporting the event                                        |
| `type`   | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html):Type flag set indicating the routes that have been selected                              |
| `info`   | [MediaRouter.RouteInfo](https://developer.android.com/reference/kotlin/android/media/MediaRouter.RouteInfo)!:Route that has been selected for the given route types |

### onRouteUngrouped

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

```
abstract fun onRouteUngrouped(
    router: MediaRouter!, 
    info: MediaRouter.RouteInfo!, 
    group: MediaRouter.RouteGroup!
): Unit
```

Called when a route is removed from a group.

|                                                                          Parameters                                                                           ||
|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------|
| `router` | [MediaRouter](https://developer.android.com/reference/kotlin/android/media/MediaRouter)!:the MediaRouter reporting the event                        |
| `info`   | [MediaRouter.RouteInfo](https://developer.android.com/reference/kotlin/android/media/MediaRouter.RouteInfo)!:The route that was removed             |
| `group`  | [MediaRouter.RouteGroup](https://developer.android.com/reference/kotlin/android/media/MediaRouter.RouteGroup)!:The group the route was removed from |

### onRouteUnselected

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

```
abstract fun onRouteUnselected(
    router: MediaRouter!, 
    type: Int, 
    info: MediaRouter.RouteInfo!
): Unit
```

Called when the supplied route becomes unselected as the active route for the given route type.

|                                                                                   Parameters                                                                                    ||
|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `router` | [MediaRouter](https://developer.android.com/reference/kotlin/android/media/MediaRouter)!:the MediaRouter reporting the event                                          |
| `type`   | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html):Type flag set indicating the routes that have been unselected                              |
| `info`   | [MediaRouter.RouteInfo](https://developer.android.com/reference/kotlin/android/media/MediaRouter.RouteInfo)!:Route that has been unselected for the given route types |

### onRouteVolumeChanged

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

```
abstract fun onRouteVolumeChanged(
    router: MediaRouter!, 
    info: MediaRouter.RouteInfo!
): Unit
```

Called when a route's volume changes.

|                                                                      Parameters                                                                      ||
|----------|--------------------------------------------------------------------------------------------------------------------------------------------|
| `router` | [MediaRouter](https://developer.android.com/reference/kotlin/android/media/MediaRouter)!:the MediaRouter reporting the event               |
| `info`   | [MediaRouter.RouteInfo](https://developer.android.com/reference/kotlin/android/media/MediaRouter.RouteInfo)!:The route with altered volume |