# MediaSession.ControllerInfo

Artifact: [androidx.media3:media3-session](https://developer.android.com/jetpack/androidx/releases/media3) [View Source](https://cs.android.com/search?q=file:androidx/media3/session/MediaSession.java+class:androidx.media3.session.MediaSession.ControllerInfo)

*** ** * ** ***


```
class MediaSession.ControllerInfo
```

<br />

*** ** * ** ***

Information of a `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaController` or a `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaBrowser`.

## Summary

| ### Constants |
|---|---|
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession.ControllerInfo#LEGACY_CONTROLLER_INTERFACE_VERSION() = 0` The `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession.ControllerInfo#getInterfaceVersion()` interface version} of a platform `https://developer.android.com/reference/android/media/session/MediaController.html` or legacy ` android.support.v4.media.session.MediaControllerCompat`. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession.ControllerInfo#LEGACY_CONTROLLER_PACKAGE_NAME() = "android.media.session.MediaController"` The `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession.ControllerInfo#getPackageName()` of a platform `https://developer.android.com/reference/android/media/session/MediaController.html` or legacy `android.support.v4.media.session.MediaControllerCompat` if a more precise package cannot be obtained. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession.ControllerInfo#LEGACY_CONTROLLER_VERSION() = 0` The `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession.ControllerInfo#getControllerVersion()` of a platform `https://developer.android.com/reference/android/media/session/MediaController.html` or legacy ` android.support.v4.media.session.MediaControllerCompat`. |

| ### Public functions |
|---|---|
| `java-static https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession.ControllerInfo!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi @https://developer.android.com/reference/kotlin/androidx/annotation/VisibleForTesting(otherwise = 2) https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession.ControllerInfo#createTestOnlyControllerInfo(java.lang.String,int,int,int,int,boolean,android.os.Bundle,boolean)( packageName: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, pid: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, uid: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, libraryVersion: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, interfaceVersion: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, trusted: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, connectionHints: https://developer.android.com/reference/android/os/Bundle.html!, isPackageNameVerified: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Returns a `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession.ControllerInfo` suitable for use when testing client code. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession.ControllerInfo#equals(java.lang.Object)(obj: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?)` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession.ControllerInfo#getControllerVersion()()` Returns the library version of the controller. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession.ControllerInfo#getPackageName()()` Returns the package name, or `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession.ControllerInfo#LEGACY_CONTROLLER_PACKAGE_NAME()` if the package name cannot be obtained. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession.ControllerInfo#getUid()()` Returns the UID of the controller. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession.ControllerInfo#hashCode()()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession.ControllerInfo#toString()()` |

| ### Public properties |
|---|---|
| `https://developer.android.com/reference/android/os/Bundle.html!` | `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession.ControllerInfo#connectionHints()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession.ControllerInfo#interfaceVersion()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession.ControllerInfo#isPackageNameVerified()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession.ControllerInfo#isTrusted()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession.ControllerInfo#maxCommandsForMediaItems()` |

## Constants

### LEGACY_CONTROLLER_INTERFACE_VERSION

```
@UnstableApi
const val LEGACY_CONTROLLER_INTERFACE_VERSION = 0: Int
```

The `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession.ControllerInfo#getInterfaceVersion()` interface version} of a platform `https://developer.android.com/reference/android/media/session/MediaController.html` or legacy `
android.support.v4.media.session.MediaControllerCompat`.

### LEGACY_CONTROLLER_PACKAGE_NAME

```
const val LEGACY_CONTROLLER_PACKAGE_NAME = "android.media.session.MediaController": String!
```

The `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession.ControllerInfo#getPackageName()` of a platform `https://developer.android.com/reference/android/media/session/MediaController.html` or legacy `android.support.v4.media.session.MediaControllerCompat` if a more precise package cannot be obtained.

### LEGACY_CONTROLLER_VERSION

```
const val LEGACY_CONTROLLER_VERSION = 0: Int
```

The `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession.ControllerInfo#getControllerVersion()` of a platform `https://developer.android.com/reference/android/media/session/MediaController.html` or legacy `
android.support.v4.media.session.MediaControllerCompat`.

## Public functions

### createTestOnlyControllerInfo

```
@UnstableApi
@VisibleForTesting(otherwise = 2)
java-static fun createTestOnlyControllerInfo(
    packageName: String!,
    pid: Int,
    uid: Int,
    libraryVersion: Int,
    interfaceVersion: Int,
    trusted: Boolean,
    connectionHints: Bundle!,
    isPackageNameVerified: Boolean
): MediaSession.ControllerInfo!
```

Returns a `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession.ControllerInfo` suitable for use when testing client code.

### equals

```
fun equals(obj: Any?): Boolean
```

### getControllerVersion

```
fun getControllerVersion(): Int
```

Returns the library version of the controller.

It will be the same as `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaLibraryInfo#VERSION_INT()` of the controller, or `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession.ControllerInfo#LEGACY_CONTROLLER_VERSION()` if the controller is a platform `https://developer.android.com/reference/android/media/session/MediaController.html` or legacy `
android.support.v4.media.session.MediaControllerCompat`.

### getPackageName

```
fun getPackageName(): String!
```

Returns the package name, or `https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession.ControllerInfo#LEGACY_CONTROLLER_PACKAGE_NAME()` if the package name cannot be obtained.

In some cases the correctness of the package name cannot be verified, for example when a controller from another app connects directly with a `https://developer.android.com/reference/kotlin/androidx/media3/session/SessionToken` and the app's package is not visible from this app. Refer to the [package visibility guidelines](https://developer.android.com/training/package-visibility) for more details and how to ensure specific packages are visible if required.

### getUid

```
fun getUid(): Int
```

Returns the UID of the controller. Can be a negative value for interoperability.

Interoperability: If `SDK_INT < 28`, then UID would be a negative value because it cannot be obtained.

### hashCode

```
fun hashCode(): Int
```

### toString

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

## Public properties

### connectionHints

```
val connectionHints: Bundle!
```

### interfaceVersion

```
val interfaceVersion: Int
```

### isPackageNameVerified

```
val isPackageNameVerified: Boolean
```

### isTrusted

```
val isTrusted: Boolean
```

### maxCommandsForMediaItems

```
val maxCommandsForMediaItems: Int
```