# MediaSession.ConnectionResult

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.ConnectionResult)

*** ** * ** ***

<br />

```
public final class MediaSession.ConnectionResult
```

<br />

*** ** * ** ***

A result for `https://developer.android.com/reference/androidx/media3/session/MediaSession.Callback#onConnectAsync(androidx.media3.session.MediaSession,androidx.media3.session.MediaSession.ControllerInfo)` to denote the set of available commands and the media button preferences for a `https://developer.android.com/reference/androidx/media3/session/MediaSession.ControllerInfo`.

## Summary

| ### Nested types |
|---|
| `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi public class https://developer.android.com/reference/androidx/media3/session/MediaSession.ConnectionResult.AcceptedResultBuilder` A builder for `https://developer.android.com/reference/androidx/media3/session/MediaSession.ConnectionResult` instances to accept a connection. |

| ### Constants |
|---|---|
| `static final https://developer.android.com/reference/androidx/media3/common/Player.Commands` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/session/MediaSession.ConnectionResult#DEFAULT_PLAYER_COMMANDS()` The default `https://developer.android.com/reference/androidx/media3/common/Player.Commands` used when a controller is `https://developer.android.com/reference/androidx/media3/session/MediaSession.ControllerInfo#isTrusted()`. |
| `static final https://developer.android.com/reference/androidx/media3/session/SessionCommands` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/session/MediaSession.ConnectionResult#DEFAULT_SESSION_AND_LIBRARY_COMMANDS()` The default `https://developer.android.com/reference/androidx/media3/session/SessionCommands` used when a controller is `https://developer.android.com/reference/androidx/media3/session/MediaSession.ControllerInfo#isTrusted()` and the session is a `https://developer.android.com/reference/androidx/media3/session/MediaLibraryService.MediaLibrarySession`. |
| `static final https://developer.android.com/reference/androidx/media3/session/SessionCommands` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/session/MediaSession.ConnectionResult#DEFAULT_SESSION_COMMANDS()` The default `https://developer.android.com/reference/androidx/media3/session/SessionCommands` used when a controller is `https://developer.android.com/reference/androidx/media3/session/MediaSession.ControllerInfo#isTrusted()` and the session is not a `https://developer.android.com/reference/androidx/media3/session/MediaLibraryService.MediaLibrarySession`. |
| `static final https://developer.android.com/reference/androidx/media3/common/Player.Commands` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/session/MediaSession.ConnectionResult#DEFAULT_UNTRUSTED_PLAYER_COMMANDS()` The default `https://developer.android.com/reference/androidx/media3/common/Player.Commands` used when a controller is not `https://developer.android.com/reference/androidx/media3/session/MediaSession.ControllerInfo#isTrusted()`. |
| `static final https://developer.android.com/reference/androidx/media3/session/SessionCommands` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/session/MediaSession.ConnectionResult#DEFAULT_UNTRUSTED_SESSION_AND_LIBRARY_COMMANDS()` The default `https://developer.android.com/reference/androidx/media3/session/SessionCommands` used when a controller is not `https://developer.android.com/reference/androidx/media3/session/MediaSession.ControllerInfo#isTrusted()` and the session is a `https://developer.android.com/reference/androidx/media3/session/MediaLibraryService.MediaLibrarySession`. |
| `static final https://developer.android.com/reference/androidx/media3/session/SessionCommands` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/session/MediaSession.ConnectionResult#DEFAULT_UNTRUSTED_SESSION_COMMANDS()` The default `https://developer.android.com/reference/androidx/media3/session/SessionCommands` used when a controller is not `https://developer.android.com/reference/androidx/media3/session/MediaSession.ControllerInfo#isTrusted()` and the session is not a `https://developer.android.com/reference/androidx/media3/session/MediaLibraryService.MediaLibrarySession`. |

| ### Public fields |
|---|---|
| `final https://developer.android.com/reference/androidx/media3/common/Player.Commands` | `https://developer.android.com/reference/androidx/media3/session/MediaSession.ConnectionResult#availablePlayerCommands()` Available player commands. |
| `final https://developer.android.com/reference/androidx/media3/session/SessionCommands` | `https://developer.android.com/reference/androidx/media3/session/MediaSession.ConnectionResult#availableSessionCommands()` Available session commands. |
| `final @https://developer.android.com/reference/androidx/annotation/Nullable https://guava.dev/releases/snapshot-android/api/docs/com/google/common/collect/ImmutableList.html<https://developer.android.com/reference/androidx/media3/session/CommandButton>` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/session/MediaSession.ConnectionResult#customLayout()` The custom layout or null if the custom layout of the session should be used. |
| `final boolean` | `https://developer.android.com/reference/androidx/media3/session/MediaSession.ConnectionResult#isAccepted()` Whether the connection request is accepted or not. |
| `final @https://developer.android.com/reference/androidx/annotation/Nullable https://guava.dev/releases/snapshot-android/api/docs/com/google/common/collect/ImmutableList.html<https://developer.android.com/reference/androidx/media3/session/CommandButton>` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/session/MediaSession.ConnectionResult#mediaButtonPreferences()` The media button preferences or null if the media button preferences of the session should be used. |
| `final @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/app/PendingIntent.html` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/session/MediaSession.ConnectionResult#sessionActivity()` The session activity. |
| `final @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/os/Bundle.html` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/session/MediaSession.ConnectionResult#sessionExtras()` The session extras. |

| ### Public methods |
|---|---|
| `static https://developer.android.com/reference/androidx/media3/session/MediaSession.ConnectionResult` | `https://developer.android.com/reference/androidx/media3/session/MediaSession.ConnectionResult#accept(androidx.media3.session.SessionCommands,androidx.media3.common.Player.Commands)( https://developer.android.com/reference/androidx/media3/session/SessionCommands availableSessionCommands, https://developer.android.com/reference/androidx/media3/common/Player.Commands availablePlayerCommands )` Creates a connection result with the given session and player commands. |
| `static https://developer.android.com/reference/androidx/media3/session/MediaSession.ConnectionResult` | `https://developer.android.com/reference/androidx/media3/session/MediaSession.ConnectionResult#reject()()` Creates a `https://developer.android.com/reference/androidx/media3/session/MediaSession.ConnectionResult` to reject a connection. |

## Constants

### DEFAULT_PLAYER_COMMANDS

```
@UnstableApi
public static final Player.Commands DEFAULT_PLAYER_COMMANDS
```

The default `https://developer.android.com/reference/androidx/media3/common/Player.Commands` used when a controller is `https://developer.android.com/reference/androidx/media3/session/MediaSession.ControllerInfo#isTrusted()`.

### DEFAULT_SESSION_AND_LIBRARY_COMMANDS

```
@UnstableApi
public static final SessionCommands DEFAULT_SESSION_AND_LIBRARY_COMMANDS
```

The default `https://developer.android.com/reference/androidx/media3/session/SessionCommands` used when a controller is `https://developer.android.com/reference/androidx/media3/session/MediaSession.ControllerInfo#isTrusted()` and the session is a `https://developer.android.com/reference/androidx/media3/session/MediaLibraryService.MediaLibrarySession`.

### DEFAULT_SESSION_COMMANDS

```
@UnstableApi
public static final SessionCommands DEFAULT_SESSION_COMMANDS
```

The default `https://developer.android.com/reference/androidx/media3/session/SessionCommands` used when a controller is `https://developer.android.com/reference/androidx/media3/session/MediaSession.ControllerInfo#isTrusted()` and the session is not a `https://developer.android.com/reference/androidx/media3/session/MediaLibraryService.MediaLibrarySession`.

### DEFAULT_UNTRUSTED_PLAYER_COMMANDS

```
@UnstableApi
public static final Player.Commands DEFAULT_UNTRUSTED_PLAYER_COMMANDS
```

The default `https://developer.android.com/reference/androidx/media3/common/Player.Commands` used when a controller is not `https://developer.android.com/reference/androidx/media3/session/MediaSession.ControllerInfo#isTrusted()`. Contains all commands from `https://developer.android.com/reference/androidx/media3/common/Player.Commands.Builder#addAllReadOnlyCommands()`.

### DEFAULT_UNTRUSTED_SESSION_AND_LIBRARY_COMMANDS

```
@UnstableApi
public static final SessionCommands DEFAULT_UNTRUSTED_SESSION_AND_LIBRARY_COMMANDS
```

The default `https://developer.android.com/reference/androidx/media3/session/SessionCommands` used when a controller is not `https://developer.android.com/reference/androidx/media3/session/MediaSession.ControllerInfo#isTrusted()` and the session is a `https://developer.android.com/reference/androidx/media3/session/MediaLibraryService.MediaLibrarySession`.

### DEFAULT_UNTRUSTED_SESSION_COMMANDS

```
@UnstableApi
public static final SessionCommands DEFAULT_UNTRUSTED_SESSION_COMMANDS
```

The default `https://developer.android.com/reference/androidx/media3/session/SessionCommands` used when a controller is not `https://developer.android.com/reference/androidx/media3/session/MediaSession.ControllerInfo#isTrusted()` and the session is not a `https://developer.android.com/reference/androidx/media3/session/MediaLibraryService.MediaLibrarySession`.

## Public fields

### availablePlayerCommands

```
public final Player.Commands availablePlayerCommands
```

Available player commands.

### availableSessionCommands

```
public final SessionCommands availableSessionCommands
```

Available session commands.

### customLayout

```
@UnstableApi
public final @Nullable ImmutableList<CommandButton> customLayout
```

The custom layout or null if the custom layout of the session should be used.

### isAccepted

```
public final boolean isAccepted
```

Whether the connection request is accepted or not.

### mediaButtonPreferences

```
@UnstableApi
public final @Nullable ImmutableList<CommandButton> mediaButtonPreferences
```

The media button preferences or null if the media button preferences of the session should be used.

### sessionActivity

```
@UnstableApi
public final @Nullable PendingIntent sessionActivity
```

The session activity.

### sessionExtras

```
@UnstableApi
public final @Nullable Bundle sessionExtras
```

The session extras.

## Public methods

### accept

```
public static MediaSession.ConnectionResult accept(
    SessionCommands availableSessionCommands,
    Player.Commands availablePlayerCommands
)
```

Creates a connection result with the given session and player commands.

Commands are specific to the controller receiving this connection result.

The controller receives `https://developer.android.com/reference/androidx/media3/session/MediaSession#getMediaButtonPreferences()`.

See `https://developer.android.com/reference/androidx/media3/session/MediaSession.ConnectionResult.AcceptedResultBuilder` for a more flexible way to accept a connection.

### reject

```
public static MediaSession.ConnectionResult reject()
```

Creates a `https://developer.android.com/reference/androidx/media3/session/MediaSession.ConnectionResult` to reject a connection.