# MediaSessionStatus

# MediaSessionStatus

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

*** ** * ** ***

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

<br />

```
class MediaSessionStatus
```

<br />

*** ** * ** ***

Describes the playback status of a media session.

This class is part of the remote playback protocol described by the[MediaControlIntent](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaControlIntent)class.

When a media session is created, it is initially in the[active](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaSessionStatus#SESSION_STATE_ACTIVE())state. When the media session ends normally, it transitions to the[ended](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaSessionStatus#SESSION_STATE_ENDED())state. If the media session is invalidated due to another session forcibly taking control of the route, then it transitions to the[invalidated](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaSessionStatus#SESSION_STATE_INVALIDATED())state. Refer to the documentation of each state for an explanation of its meaning.

To monitor session status, the application should supply a[PendingIntent](https://developer.android.com/reference/android/app/PendingIntent.html)to use as the[session status update receiver](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaControlIntent#EXTRA_SESSION_STATUS_UPDATE_RECEIVER())for a given[session start request](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaControlIntent#ACTION_START_SESSION()).

This object is immutable once created using a[Builder](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaSessionStatus.Builder)instance.

## Summary

|                                                                                                                                  ### Nested types                                                                                                                                   |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `class `[MediaSessionStatus.Builder](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaSessionStatus.Builder) Builder for[media session status objects](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaSessionStatus). |

|                                    ### Constants                                    |
|-------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [SESSION_STATE_ACTIVE](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaSessionStatus#SESSION_STATE_ACTIVE())` = 0` Session state: Active.                |
| `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [SESSION_STATE_ENDED](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaSessionStatus#SESSION_STATE_ENDED())` = 1` Session state: Ended.                   |
| `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [SESSION_STATE_INVALIDATED](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaSessionStatus#SESSION_STATE_INVALIDATED())` = 2` Session state: Invalidated. |

|                                                        ### Public functions                                                         |
|-------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Bundle](https://developer.android.com/reference/android/os/Bundle.html)                                                            | [asBundle](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaSessionStatus#asBundle())`()` Converts this object to a bundle for serialization.                                                                                                                                                                   |
| `java-static `[MediaSessionStatus](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaSessionStatus)`?` | [fromBundle](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaSessionStatus#fromBundle(android.os.Bundle))`(bundle: `[Bundle](https://developer.android.com/reference/android/os/Bundle.html)`?)` Creates an instance from a bundle.                                                                            |
| [Bundle](https://developer.android.com/reference/android/os/Bundle.html)`?`                                                         | [getExtras](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaSessionStatus#getExtras())`()` Gets a bundle of extras for this status object.                                                                                                                                                                     |
| [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)                                                         | [getSessionState](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaSessionStatus#getSessionState())`()` Gets the session state.                                                                                                                                                                                 |
| [Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)                                                       | [getTimestamp](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaSessionStatus#getTimestamp())`()` Gets the timestamp associated with the status information in milliseconds since boot in the[elapsedRealtime](https://developer.android.com/reference/android/os/SystemClock.html#elapsedRealtime())time base. |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)                                                 | [isQueuePaused](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaSessionStatus#isQueuePaused())`()` Returns true if the session's queue is paused.                                                                                                                                                              |
| [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)                                                   | [toString](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaSessionStatus#toString())`()`                                                                                                                                                                                                                       |

## Constants

### SESSION_STATE_ACTIVE

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

```
const val SESSION_STATE_ACTIVE = 0: Int
```

Session state: Active.

Indicates that the media session is active and in control of the route.  

### SESSION_STATE_ENDED

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

```
const val SESSION_STATE_ENDED = 1: Int
```

Session state: Ended.

Indicates that the media session was ended normally using the[end session](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaControlIntent#ACTION_END_SESSION())action.

A terminated media session cannot be used anymore. To play more media, the application must start a new session.  

### SESSION_STATE_INVALIDATED

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

```
const val SESSION_STATE_INVALIDATED = 2: Int
```

Session state: Invalidated.

Indicates that the media session was invalidated involuntarily due to another session taking control of the route.

An invalidated media session cannot be used anymore. To play more media, the application must start a new session.  

## Public functions

### asBundle

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

```
fun asBundle(): Bundle
```

Converts this object to a bundle for serialization.  

|                                 Returns                                  |
|--------------------------------------------------------------------------|-----------------------------------------------------|
| [Bundle](https://developer.android.com/reference/android/os/Bundle.html) | The contents of the object represented as a bundle. |

### fromBundle

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

```
java-static fun fromBundle(bundle: Bundle?): MediaSessionStatus?
```

Creates an instance from a bundle.  

|                                      Parameters                                       |
|---------------------------------------------------------------------------------------|------------------------------|
| `bundle: `[Bundle](https://developer.android.com/reference/android/os/Bundle.html)`?` | The bundle, or null if none. |

|                                                        Returns                                                        |
|-----------------------------------------------------------------------------------------------------------------------|---------------------------------------------------|
| [MediaSessionStatus](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaSessionStatus)`?` | The new instance, or null if the bundle was null. |

### getExtras

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

```
fun getExtras(): Bundle?
```

Gets a bundle of extras for this status object. The extras will be ignored by the media router but they may be used by applications.  

### getSessionState

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

```
fun getSessionState(): Int
```

Gets the session state.  

|                                   Returns                                   |
|-----------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | The session state. One of[SESSION_STATE_ACTIVE](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaSessionStatus#SESSION_STATE_ACTIVE()),[SESSION_STATE_ENDED](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaSessionStatus#SESSION_STATE_ENDED()), or[SESSION_STATE_INVALIDATED](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaSessionStatus#SESSION_STATE_INVALIDATED()). |

### getTimestamp

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

```
fun getTimestamp(): Long
```

Gets the timestamp associated with the status information in milliseconds since boot in the[elapsedRealtime](https://developer.android.com/reference/android/os/SystemClock.html#elapsedRealtime())time base.  

|                                    Returns                                    |
|-------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|
| [Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) | The status timestamp in the[elapsedRealtime](https://developer.android.com/reference/android/os/SystemClock.html#elapsedRealtime())time base. |

### isQueuePaused

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

```
fun isQueuePaused(): Boolean
```

Returns true if the session's queue is paused.  

|                                       Returns                                       |
|-------------------------------------------------------------------------------------|----------------------------------------|
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | True if the session's queue is paused. |

### toString

```
fun toString(): String
```