# LibraryResult

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/LibraryResult.java+class:androidx.media3.session.LibraryResult)

*** ** * ** ***


```
public final class LibraryResult<V extends Object>
```

<br />

*** ** * ** ***

A result to be used with `https://guava.dev/releases/snapshot-android/api/docs/com/google/common/util/concurrent/ListenableFuture.html` for asynchronous calls between `https://developer.android.com/reference/androidx/media3/session/MediaLibraryService.MediaLibrarySession` and `https://developer.android.com/reference/androidx/media3/session/MediaBrowser`.

## Summary

| ### Nested types |
|---|
| `@https://developer.android.com/reference/java/lang/annotation/Documented.html @https://developer.android.com/reference/java/lang/annotation/Retention.html(value = https://developer.android.com/reference/java/lang/annotation/RetentionPolicy.html#SOURCE) @https://developer.android.com/reference/java/lang/annotation/Target.html(value = https://developer.android.com/reference/java/lang/annotation/ElementType.html#TYPE_USE) @https://developer.android.com/reference/androidx/annotation/IntDef(value = [https://developer.android.com/reference/androidx/media3/session/SessionError.INFO_CANCELLED, https://developer.android.com/reference/androidx/media3/session/SessionError.ERROR_UNKNOWN, https://developer.android.com/reference/androidx/media3/session/SessionError.ERROR_INVALID_STATE, https://developer.android.com/reference/androidx/media3/session/SessionError.ERROR_BAD_VALUE, https://developer.android.com/reference/androidx/media3/session/SessionError.ERROR_PERMISSION_DENIED, https://developer.android.com/reference/androidx/media3/session/SessionError.ERROR_IO, https://developer.android.com/reference/androidx/media3/session/SessionError.ERROR_SESSION_DISCONNECTED, https://developer.android.com/reference/androidx/media3/session/SessionError.ERROR_NOT_SUPPORTED, https://developer.android.com/reference/androidx/media3/session/SessionError.ERROR_SESSION_AUTHENTICATION_EXPIRED, https://developer.android.com/reference/androidx/media3/session/SessionError.ERROR_SESSION_PREMIUM_ACCOUNT_REQUIRED, https://developer.android.com/reference/androidx/media3/session/SessionError.ERROR_SESSION_CONCURRENT_STREAM_LIMIT, https://developer.android.com/reference/androidx/media3/session/SessionError.ERROR_SESSION_PARENTAL_CONTROL_RESTRICTED, https://developer.android.com/reference/androidx/media3/session/SessionError.ERROR_SESSION_NOT_AVAILABLE_IN_REGION, https://developer.android.com/reference/androidx/media3/session/SessionError.ERROR_SESSION_SKIP_LIMIT_REACHED, https://developer.android.com/reference/androidx/media3/session/SessionError.ERROR_SESSION_SETUP_REQUIRED]) public annotation https://developer.android.com/reference/androidx/media3/session/LibraryResult.Code` Result codes. |

| ### Constants |
|---|---|
| `static final int` | `https://developer.android.com/reference/androidx/media3/session/LibraryResult#RESULT_ERROR_BAD_VALUE() = -3` Result code representing that an argument is illegal. |
| `static final int` | `https://developer.android.com/reference/androidx/media3/session/LibraryResult#RESULT_ERROR_INVALID_STATE() = -2` Result code representing that the command cannot be completed because the current state is not valid for the command. |
| `static final int` | `https://developer.android.com/reference/androidx/media3/session/LibraryResult#RESULT_ERROR_IO() = -5` Result code representing that a file or network related error happened. |
| `static final int` | `https://developer.android.com/reference/androidx/media3/session/LibraryResult#RESULT_ERROR_NOT_SUPPORTED() = -6` Result code representing that the command is not supported. |
| `static final int` | `https://developer.android.com/reference/androidx/media3/session/LibraryResult#RESULT_ERROR_PERMISSION_DENIED() = -4` Result code representing that the command is not allowed. |
| `static final int` | `https://developer.android.com/reference/androidx/media3/session/LibraryResult#RESULT_ERROR_SESSION_AUTHENTICATION_EXPIRED() = -102` Result code representing that the authentication has expired. |
| `static final int` | `https://developer.android.com/reference/androidx/media3/session/LibraryResult#RESULT_ERROR_SESSION_CONCURRENT_STREAM_LIMIT() = -104` Result code representing that too many concurrent streams are detected. |
| `static final int` | `https://developer.android.com/reference/androidx/media3/session/LibraryResult#RESULT_ERROR_SESSION_DISCONNECTED() = -100` Result code representing that the session and controller were disconnected. |
| `static final int` | `https://developer.android.com/reference/androidx/media3/session/LibraryResult#RESULT_ERROR_SESSION_NOT_AVAILABLE_IN_REGION() = -106` Result code representing that the content is blocked due to being regionally unavailable. |
| `static final int` | `https://developer.android.com/reference/androidx/media3/session/LibraryResult#RESULT_ERROR_SESSION_PARENTAL_CONTROL_RESTRICTED() = -105` Result code representing that the content is blocked due to parental controls. |
| `static final int` | `https://developer.android.com/reference/androidx/media3/session/LibraryResult#RESULT_ERROR_SESSION_PREMIUM_ACCOUNT_REQUIRED() = -103` Result code representing that a premium account is required. |
| `static final int` | `https://developer.android.com/reference/androidx/media3/session/LibraryResult#RESULT_ERROR_SESSION_SETUP_REQUIRED() = -108` Result code representing that the session needs user's manual intervention. |
| `static final int` | `https://developer.android.com/reference/androidx/media3/session/LibraryResult#RESULT_ERROR_SESSION_SKIP_LIMIT_REACHED() = -107` Result code representing that the application cannot skip any more because the skip limit is reached. |
| `static final int` | `https://developer.android.com/reference/androidx/media3/session/LibraryResult#RESULT_ERROR_UNKNOWN() = -1` Result code representing that the command is ended with an unknown error. |
| `static final int` | `https://developer.android.com/reference/androidx/media3/session/LibraryResult#RESULT_INFO_SKIPPED() = 1` Result code representing that the command is skipped. |
| `static final int` | `https://developer.android.com/reference/androidx/media3/session/LibraryResult#RESULT_SUCCESS() = 0` Result code representing that the command is successfully completed. |

| ### Public fields |
|---|---|
| `final long` | `https://developer.android.com/reference/androidx/media3/session/LibraryResult#completionTimeMs()` The completion time of the command in milliseconds. |
| `final @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/session/MediaLibraryService.LibraryParams` | `https://developer.android.com/reference/androidx/media3/session/LibraryResult#params()` The optional parameters. |
| `final int` | `@https://developer.android.com/reference/androidx/media3/session/LibraryResult.Code https://developer.android.com/reference/androidx/media3/session/LibraryResult#resultCode()` The `https://developer.android.com/reference/androidx/media3/session/LibraryResult.Code` of this result. |
| `final @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/session/SessionError` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/session/LibraryResult#sessionError()` The optional session error. |
| `final @https://developer.android.com/reference/androidx/annotation/Nullable V` | `https://developer.android.com/reference/androidx/media3/session/LibraryResult#value()` The value of this result. |

| ### Public methods |
|---|---|
| `static https://developer.android.com/reference/androidx/media3/session/LibraryResult<https://developer.android.com/reference/androidx/media3/common/MediaItem>` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [fromItemBundle](https://developer.android.com/reference/androidx/media3/session/LibraryResult#fromItemBundle(android.os.Bundle))(https://developer.android.com/reference/android/os/Bundle.html bundle)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/session/LibraryResult#fromItemBundle(android.os.Bundle,int)` instead. <br /> |
| `static https://developer.android.com/reference/androidx/media3/session/LibraryResult<https://developer.android.com/reference/androidx/media3/common/MediaItem>` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/session/LibraryResult#fromItemBundle(android.os.Bundle,int)(https://developer.android.com/reference/android/os/Bundle.html bundle, int interfaceVersion)` Restores a `LibraryResult<MediaItem>` from a `https://developer.android.com/reference/android/os/Bundle.html`. |
| `static https://developer.android.com/reference/androidx/media3/session/LibraryResult<https://guava.dev/releases/snapshot-android/api/docs/com/google/common/collect/ImmutableList.html<https://developer.android.com/reference/androidx/media3/common/MediaItem>>` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [fromItemListBundle](https://developer.android.com/reference/androidx/media3/session/LibraryResult#fromItemListBundle(android.os.Bundle))(https://developer.android.com/reference/android/os/Bundle.html bundle)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/session/LibraryResult#fromItemListBundle(android.os.Bundle,int)` instead. <br /> |
| `static https://developer.android.com/reference/androidx/media3/session/LibraryResult<https://guava.dev/releases/snapshot-android/api/docs/com/google/common/collect/ImmutableList.html<https://developer.android.com/reference/androidx/media3/common/MediaItem>>` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/session/LibraryResult#fromItemListBundle(android.os.Bundle,int)(https://developer.android.com/reference/android/os/Bundle.html bundle, int interfaceVersion)` Restores a `LibraryResult<ImmutableList<MediaItem>` from a `https://developer.android.com/reference/android/os/Bundle.html`. |
| `static https://developer.android.com/reference/androidx/media3/session/LibraryResult<@https://developer.android.com/reference/androidx/annotation/NonNull ?>` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [fromUnknownBundle](https://developer.android.com/reference/androidx/media3/session/LibraryResult#fromUnknownBundle(android.os.Bundle))(https://developer.android.com/reference/android/os/Bundle.html bundle)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/session/LibraryResult#fromUnknownBundle(android.os.Bundle,int)` instead. <br /> |
| `static https://developer.android.com/reference/androidx/media3/session/LibraryResult<@https://developer.android.com/reference/androidx/annotation/NonNull ?>` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/session/LibraryResult#fromUnknownBundle(android.os.Bundle,int)(https://developer.android.com/reference/android/os/Bundle.html bundle, int interfaceVersion)` Restores a `LibraryResult` with unknown value type from a `https://developer.android.com/reference/android/os/Bundle.html`. |
| `static https://developer.android.com/reference/androidx/media3/session/LibraryResult<https://developer.android.com/reference/java/lang/Void.html>` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [fromVoidBundle](https://developer.android.com/reference/androidx/media3/session/LibraryResult#fromVoidBundle(android.os.Bundle))(https://developer.android.com/reference/android/os/Bundle.html bundle)` **This method is deprecated.** USe `https://developer.android.com/reference/androidx/media3/session/LibraryResult#fromVoidBundle(android.os.Bundle,int)` instead. <br /> |
| `static https://developer.android.com/reference/androidx/media3/session/LibraryResult<https://developer.android.com/reference/java/lang/Void.html>` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/session/LibraryResult#fromVoidBundle(android.os.Bundle,int)(https://developer.android.com/reference/android/os/Bundle.html bundle, int interfaceVersion)` Restores a `LibraryResult<Void>` from a `https://developer.android.com/reference/android/os/Bundle.html`. |
| `static https://developer.android.com/reference/androidx/media3/session/LibraryResult<V>` | `<V extends https://developer.android.com/reference/java/lang/Object.html> https://developer.android.com/reference/androidx/media3/session/LibraryResult#ofError(int)(@https://developer.android.com/reference/androidx/media3/session/LibraryResult.Code int errorCode)` Creates an instance with an unsuccessful `https://developer.android.com/reference/androidx/media3/session/LibraryResult.Code`. |
| `static https://developer.android.com/reference/androidx/media3/session/LibraryResult<V>` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi <V extends https://developer.android.com/reference/java/lang/Object.html> https://developer.android.com/reference/androidx/media3/session/LibraryResult#ofError(androidx.media3.session.SessionError)(https://developer.android.com/reference/androidx/media3/session/SessionError sessionError)` Creates an instance with a `https://developer.android.com/reference/androidx/media3/session/SessionError` to describe the error. |
| `static https://developer.android.com/reference/androidx/media3/session/LibraryResult<V>` | `<V extends https://developer.android.com/reference/java/lang/Object.html> https://developer.android.com/reference/androidx/media3/session/LibraryResult#ofError(int,androidx.media3.session.MediaLibraryService.LibraryParams)( @https://developer.android.com/reference/androidx/media3/session/LibraryResult.Code int errorCode, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/session/MediaLibraryService.LibraryParams params )` Creates an instance with an unsuccessful `https://developer.android.com/reference/androidx/media3/session/LibraryResult.Code` and `https://developer.android.com/reference/androidx/media3/session/MediaLibraryService.LibraryParams` to describe the error. |
| `static https://developer.android.com/reference/androidx/media3/session/LibraryResult<V>` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi <V extends https://developer.android.com/reference/java/lang/Object.html> https://developer.android.com/reference/androidx/media3/session/LibraryResult#ofError(androidx.media3.session.SessionError,androidx.media3.session.MediaLibraryService.LibraryParams)( https://developer.android.com/reference/androidx/media3/session/SessionError sessionError, https://developer.android.com/reference/androidx/media3/session/MediaLibraryService.LibraryParams params )` Creates an instance with a `https://developer.android.com/reference/androidx/media3/session/SessionError` to describe the error, and the `https://developer.android.com/reference/androidx/media3/session/MediaLibraryService.LibraryParams`. |
| `static https://developer.android.com/reference/androidx/media3/session/LibraryResult<https://developer.android.com/reference/androidx/media3/common/MediaItem>` | `https://developer.android.com/reference/androidx/media3/session/LibraryResult#ofItem(androidx.media3.common.MediaItem,androidx.media3.session.MediaLibraryService.LibraryParams)( https://developer.android.com/reference/androidx/media3/common/MediaItem item, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/session/MediaLibraryService.LibraryParams params )` Creates an instance with a media item and `https://developer.android.com/reference/androidx/media3/session/LibraryResult#resultCode()``==``https://developer.android.com/reference/androidx/media3/session/LibraryResult#RESULT_SUCCESS()`. |
| `static https://developer.android.com/reference/androidx/media3/session/LibraryResult<https://guava.dev/releases/snapshot-android/api/docs/com/google/common/collect/ImmutableList.html<https://developer.android.com/reference/androidx/media3/common/MediaItem>>` | `https://developer.android.com/reference/androidx/media3/session/LibraryResult#ofItemList(java.util.List<androidx.media3.common.MediaItem>,androidx.media3.session.MediaLibraryService.LibraryParams)( https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/MediaItem> items, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/session/MediaLibraryService.LibraryParams params )` Creates an instance with a list of media items and `https://developer.android.com/reference/androidx/media3/session/LibraryResult#resultCode()``==``https://developer.android.com/reference/androidx/media3/session/LibraryResult#RESULT_SUCCESS()`. |
| `static https://developer.android.com/reference/androidx/media3/session/LibraryResult<https://developer.android.com/reference/java/lang/Void.html>` | `https://developer.android.com/reference/androidx/media3/session/LibraryResult#ofVoid()()` Creates an instance with `https://developer.android.com/reference/androidx/media3/session/LibraryResult#resultCode()``==``https://developer.android.com/reference/androidx/media3/session/LibraryResult#RESULT_SUCCESS()`. |
| `static https://developer.android.com/reference/androidx/media3/session/LibraryResult<https://developer.android.com/reference/java/lang/Void.html>` | `https://developer.android.com/reference/androidx/media3/session/LibraryResult#ofVoid(androidx.media3.session.MediaLibraryService.LibraryParams)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/session/MediaLibraryService.LibraryParams params)` Creates an instance with `https://developer.android.com/reference/androidx/media3/session/LibraryResult#resultCode()``==``https://developer.android.com/reference/androidx/media3/session/LibraryResult#RESULT_SUCCESS()` and optional `https://developer.android.com/reference/androidx/media3/session/MediaLibraryService.LibraryParams`. |
| `https://developer.android.com/reference/android/os/Bundle.html` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [toBundle](https://developer.android.com/reference/androidx/media3/session/LibraryResult#toBundle())()` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/session/LibraryResult#toBundle(int)` instead. <br /> |
| `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/LibraryResult#toBundle(int)(int interfaceVersion)` |

## Constants

### RESULT_ERROR_BAD_VALUE

```
public static final int RESULT_ERROR_BAD_VALUE = -3
```

Result code representing that an argument is illegal.

### RESULT_ERROR_INVALID_STATE

```
public static final int RESULT_ERROR_INVALID_STATE = -2
```

Result code representing that the command cannot be completed because the current state is not valid for the command.

### RESULT_ERROR_IO

```
public static final int RESULT_ERROR_IO = -5
```

Result code representing that a file or network related error happened.

### RESULT_ERROR_NOT_SUPPORTED

```
public static final int RESULT_ERROR_NOT_SUPPORTED = -6
```

Result code representing that the command is not supported.

### RESULT_ERROR_PERMISSION_DENIED

```
public static final int RESULT_ERROR_PERMISSION_DENIED = -4
```

Result code representing that the command is not allowed.

### RESULT_ERROR_SESSION_AUTHENTICATION_EXPIRED

```
public static final int RESULT_ERROR_SESSION_AUTHENTICATION_EXPIRED = -102
```

Result code representing that the authentication has expired.

### RESULT_ERROR_SESSION_CONCURRENT_STREAM_LIMIT

```
public static final int RESULT_ERROR_SESSION_CONCURRENT_STREAM_LIMIT = -104
```

Result code representing that too many concurrent streams are detected.

### RESULT_ERROR_SESSION_DISCONNECTED

```
public static final int RESULT_ERROR_SESSION_DISCONNECTED = -100
```

Result code representing that the session and controller were disconnected.

### RESULT_ERROR_SESSION_NOT_AVAILABLE_IN_REGION

```
public static final int RESULT_ERROR_SESSION_NOT_AVAILABLE_IN_REGION = -106
```

Result code representing that the content is blocked due to being regionally unavailable.

### RESULT_ERROR_SESSION_PARENTAL_CONTROL_RESTRICTED

```
public static final int RESULT_ERROR_SESSION_PARENTAL_CONTROL_RESTRICTED = -105
```

Result code representing that the content is blocked due to parental controls.

### RESULT_ERROR_SESSION_PREMIUM_ACCOUNT_REQUIRED

```
public static final int RESULT_ERROR_SESSION_PREMIUM_ACCOUNT_REQUIRED = -103
```

Result code representing that a premium account is required.

### RESULT_ERROR_SESSION_SETUP_REQUIRED

```
public static final int RESULT_ERROR_SESSION_SETUP_REQUIRED = -108
```

Result code representing that the session needs user's manual intervention.

### RESULT_ERROR_SESSION_SKIP_LIMIT_REACHED

```
public static final int RESULT_ERROR_SESSION_SKIP_LIMIT_REACHED = -107
```

Result code representing that the application cannot skip any more because the skip limit is reached.

### RESULT_ERROR_UNKNOWN

```
public static final int RESULT_ERROR_UNKNOWN = -1
```

Result code representing that the command is ended with an unknown error.

### RESULT_INFO_SKIPPED

```
public static final int RESULT_INFO_SKIPPED = 1
```

Result code representing that the command is skipped.

### RESULT_SUCCESS

```
public static final int RESULT_SUCCESS = 0
```

Result code representing that the command is successfully completed.

Interoperability: This code is also used to tell that the command was successfully sent, but the result is unknown when connected with `
android.support.v4.media.session.MediaSessionCompat` or `
android.support.v4.media.session.MediaControllerCompat`.

## Public fields

### completionTimeMs

```
public final long completionTimeMs
```

The completion time of the command in milliseconds. It's the same as `https://developer.android.com/reference/android/os/SystemClock.html#elapsedRealtime()` when the command is completed.

### params

```
public final @Nullable MediaLibraryService.LibraryParams params
```

The optional parameters.

### resultCode

```
@LibraryResult.Code
public final int resultCode
```

The `https://developer.android.com/reference/androidx/media3/session/LibraryResult.Code` of this result.

Value is one of the following:

- `SessionError.INFO_CANCELLED`
- `SessionError.ERROR_UNKNOWN`
- `SessionError.ERROR_INVALID_STATE`
- `SessionError.ERROR_BAD_VALUE`
- `SessionError.ERROR_PERMISSION_DENIED`
- `SessionError.ERROR_IO`
- `SessionError.ERROR_SESSION_DISCONNECTED`
- `SessionError.ERROR_NOT_SUPPORTED`
- `SessionError.ERROR_SESSION_AUTHENTICATION_EXPIRED`
- `SessionError.ERROR_SESSION_PREMIUM_ACCOUNT_REQUIRED`
- `SessionError.ERROR_SESSION_CONCURRENT_STREAM_LIMIT`
- `SessionError.ERROR_SESSION_PARENTAL_CONTROL_RESTRICTED`
- `SessionError.ERROR_SESSION_NOT_AVAILABLE_IN_REGION`
- `SessionError.ERROR_SESSION_SKIP_LIMIT_REACHED`
- `SessionError.ERROR_SESSION_SETUP_REQUIRED`

<br />

### sessionError

```
@UnstableApi
public final @Nullable SessionError sessionError
```

The optional session error.

### value

```
public final @Nullable V value
```

The value of this result. Will be `null` if `https://developer.android.com/reference/androidx/media3/session/LibraryResult#resultCode()` is not `https://developer.android.com/reference/androidx/media3/session/LibraryResult#RESULT_SUCCESS()`.

## Public methods

### fromItemBundle

```
@UnstableApi
public static LibraryResult<MediaItem> [fromItemBundle](https://developer.android.com/reference/androidx/media3/session/LibraryResult#fromItemBundle(android.os.Bundle))(Bundle bundle)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/session/LibraryResult#fromItemBundle(android.os.Bundle,int)` instead.

### fromItemBundle

```
@UnstableApi
public static LibraryResult<MediaItem> fromItemBundle(Bundle bundle, int interfaceVersion)
```

Restores a `LibraryResult<MediaItem>` from a `https://developer.android.com/reference/android/os/Bundle.html`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/android/os/Bundle.html bundle` | The `https://developer.android.com/reference/android/os/Bundle.html`. |
| `int interfaceVersion` | The `https://developer.android.com/reference/androidx/media3/common/MediaLibraryInfo#INTERFACE_VERSION()` of the sending process. |

### fromItemListBundle

```
@UnstableApi
public static LibraryResult<ImmutableList<MediaItem>> [fromItemListBundle](https://developer.android.com/reference/androidx/media3/session/LibraryResult#fromItemListBundle(android.os.Bundle))(Bundle bundle)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/session/LibraryResult#fromItemListBundle(android.os.Bundle,int)` instead.

### fromItemListBundle

```
@UnstableApi
public static LibraryResult<ImmutableList<MediaItem>> fromItemListBundle(Bundle bundle, int interfaceVersion)
```

Restores a `LibraryResult<ImmutableList<MediaItem>` from a `https://developer.android.com/reference/android/os/Bundle.html`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/android/os/Bundle.html bundle` | The `https://developer.android.com/reference/android/os/Bundle.html`. |
| `int interfaceVersion` | The `https://developer.android.com/reference/androidx/media3/common/MediaLibraryInfo#INTERFACE_VERSION()` of the sending process. |

### fromUnknownBundle

```
@UnstableApi
public static LibraryResult<@NonNull ?> [fromUnknownBundle](https://developer.android.com/reference/androidx/media3/session/LibraryResult#fromUnknownBundle(android.os.Bundle))(Bundle bundle)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/session/LibraryResult#fromUnknownBundle(android.os.Bundle,int)` instead.

### fromUnknownBundle

```
@UnstableApi
public static LibraryResult<@NonNull ?> fromUnknownBundle(Bundle bundle, int interfaceVersion)
```

Restores a `LibraryResult` with unknown value type from a `https://developer.android.com/reference/android/os/Bundle.html`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/android/os/Bundle.html bundle` | The `https://developer.android.com/reference/android/os/Bundle.html`. |
| `int interfaceVersion` | The `https://developer.android.com/reference/androidx/media3/common/MediaLibraryInfo#INTERFACE_VERSION()` of the sending process. |

### fromVoidBundle

```
@UnstableApi
public static LibraryResult<Void> [fromVoidBundle](https://developer.android.com/reference/androidx/media3/session/LibraryResult#fromVoidBundle(android.os.Bundle))(Bundle bundle)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> USe `https://developer.android.com/reference/androidx/media3/session/LibraryResult#fromVoidBundle(android.os.Bundle,int)` instead.

### fromVoidBundle

```
@UnstableApi
public static LibraryResult<Void> fromVoidBundle(Bundle bundle, int interfaceVersion)
```

Restores a `LibraryResult<Void>` from a `https://developer.android.com/reference/android/os/Bundle.html`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/android/os/Bundle.html bundle` | The `https://developer.android.com/reference/android/os/Bundle.html`. |
| `int interfaceVersion` | The `https://developer.android.com/reference/androidx/media3/common/MediaLibraryInfo#INTERFACE_VERSION()` of the sending process. |

### ofError

```
public static LibraryResult<V> <V extends Object> ofError(@LibraryResult.Code int errorCode)
```

Creates an instance with an unsuccessful `https://developer.android.com/reference/androidx/media3/session/LibraryResult.Code`.

`errorCode` must not be `https://developer.android.com/reference/androidx/media3/session/LibraryResult#RESULT_SUCCESS()`.

Note: This method will be deprecated when `https://developer.android.com/reference/androidx/media3/session/LibraryResult#ofError(androidx.media3.session.SessionError)` is promoted to stable API status.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/media3/session/LibraryResult.Code int errorCode` | The error code. Value is one of the following: - `SessionError.INFO_CANCELLED` - `SessionError.ERROR_UNKNOWN` - `SessionError.ERROR_INVALID_STATE` - `SessionError.ERROR_BAD_VALUE` - `SessionError.ERROR_PERMISSION_DENIED` - `SessionError.ERROR_IO` - `SessionError.ERROR_SESSION_DISCONNECTED` - `SessionError.ERROR_NOT_SUPPORTED` - `SessionError.ERROR_SESSION_AUTHENTICATION_EXPIRED` - `SessionError.ERROR_SESSION_PREMIUM_ACCOUNT_REQUIRED` - `SessionError.ERROR_SESSION_CONCURRENT_STREAM_LIMIT` - `SessionError.ERROR_SESSION_PARENTAL_CONTROL_RESTRICTED` - `SessionError.ERROR_SESSION_NOT_AVAILABLE_IN_REGION` - `SessionError.ERROR_SESSION_SKIP_LIMIT_REACHED` - `SessionError.ERROR_SESSION_SETUP_REQUIRED` <br /> |

### ofError

```
@UnstableApi
public static LibraryResult<V> <V extends Object> ofError(SessionError sessionError)
```

Creates an instance with a `https://developer.android.com/reference/androidx/media3/session/SessionError` to describe the error. The `https://developer.android.com/reference/androidx/media3/session/LibraryResult#resultCode()` is taken from `https://developer.android.com/reference/androidx/media3/session/SessionError#code()`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/session/SessionError sessionError` | The `https://developer.android.com/reference/androidx/media3/session/SessionError`. |

### ofError

```
public static LibraryResult<V> <V extends Object> ofError(
    @LibraryResult.Code int errorCode,
    @Nullable MediaLibraryService.LibraryParams params
)
```

Creates an instance with an unsuccessful `https://developer.android.com/reference/androidx/media3/session/LibraryResult.Code` and `https://developer.android.com/reference/androidx/media3/session/MediaLibraryService.LibraryParams` to describe the error.

`errorCode` must not be `https://developer.android.com/reference/androidx/media3/session/LibraryResult#RESULT_SUCCESS()`.

Note: This method will be deprecated when `https://developer.android.com/reference/androidx/media3/session/LibraryResult#ofError(androidx.media3.session.SessionError,androidx.media3.session.MediaLibraryService.LibraryParams)` is promoted to stable API status.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/media3/session/LibraryResult.Code int errorCode` | The error code. Value is one of the following: - `SessionError.INFO_CANCELLED` - `SessionError.ERROR_UNKNOWN` - `SessionError.ERROR_INVALID_STATE` - `SessionError.ERROR_BAD_VALUE` - `SessionError.ERROR_PERMISSION_DENIED` - `SessionError.ERROR_IO` - `SessionError.ERROR_SESSION_DISCONNECTED` - `SessionError.ERROR_NOT_SUPPORTED` - `SessionError.ERROR_SESSION_AUTHENTICATION_EXPIRED` - `SessionError.ERROR_SESSION_PREMIUM_ACCOUNT_REQUIRED` - `SessionError.ERROR_SESSION_CONCURRENT_STREAM_LIMIT` - `SessionError.ERROR_SESSION_PARENTAL_CONTROL_RESTRICTED` - `SessionError.ERROR_SESSION_NOT_AVAILABLE_IN_REGION` - `SessionError.ERROR_SESSION_SKIP_LIMIT_REACHED` - `SessionError.ERROR_SESSION_SETUP_REQUIRED` <br /> |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/session/MediaLibraryService.LibraryParams params` | The optional parameters to describe the error. |

### ofError

```
@UnstableApi
public static LibraryResult<V> <V extends Object> ofError(
    SessionError sessionError,
    MediaLibraryService.LibraryParams params
)
```

Creates an instance with a `https://developer.android.com/reference/androidx/media3/session/SessionError` to describe the error, and the `https://developer.android.com/reference/androidx/media3/session/MediaLibraryService.LibraryParams`. The `https://developer.android.com/reference/androidx/media3/session/LibraryResult#resultCode()` is taken from `https://developer.android.com/reference/androidx/media3/session/SessionError#code()`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/session/SessionError sessionError` | The `https://developer.android.com/reference/androidx/media3/session/SessionError`. |
| `https://developer.android.com/reference/androidx/media3/session/MediaLibraryService.LibraryParams params` | The `https://developer.android.com/reference/androidx/media3/session/MediaLibraryService.LibraryParams` sent by the browser. |

### ofItem

```
public static LibraryResult<MediaItem> ofItem(
    MediaItem item,
    @Nullable MediaLibraryService.LibraryParams params
)
```

Creates an instance with a media item and `https://developer.android.com/reference/androidx/media3/session/LibraryResult#resultCode()``==``https://developer.android.com/reference/androidx/media3/session/LibraryResult#RESULT_SUCCESS()`.

The `https://developer.android.com/reference/androidx/media3/common/MediaItem#mediaMetadata()` must specify `https://developer.android.com/reference/androidx/media3/common/MediaMetadata#isBrowsable()` and `https://developer.android.com/reference/androidx/media3/common/MediaMetadata#isPlayable()` fields.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/MediaItem item` | The media item. |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/session/MediaLibraryService.LibraryParams params` | The optional parameters to describe the media item. |

### ofItemList

```
public static LibraryResult<ImmutableList<MediaItem>> ofItemList(
    List<MediaItem> items,
    @Nullable MediaLibraryService.LibraryParams params
)
```

Creates an instance with a list of media items and `https://developer.android.com/reference/androidx/media3/session/LibraryResult#resultCode()``==``https://developer.android.com/reference/androidx/media3/session/LibraryResult#RESULT_SUCCESS()`.

The `https://developer.android.com/reference/androidx/media3/common/MediaItem#mediaMetadata()` of each item in the list must specify `https://developer.android.com/reference/androidx/media3/common/MediaMetadata#isBrowsable()` and `https://developer.android.com/reference/androidx/media3/common/MediaMetadata#isPlayable()` fields.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/MediaItem> items` | The list of media items. |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/session/MediaLibraryService.LibraryParams params` | The optional parameters to describe the list of media items. |

### ofVoid

```
public static LibraryResult<Void> ofVoid()
```

Creates an instance with `https://developer.android.com/reference/androidx/media3/session/LibraryResult#resultCode()``==``https://developer.android.com/reference/androidx/media3/session/LibraryResult#RESULT_SUCCESS()`.

### ofVoid

```
public static LibraryResult<Void> ofVoid(@Nullable MediaLibraryService.LibraryParams params)
```

Creates an instance with `https://developer.android.com/reference/androidx/media3/session/LibraryResult#resultCode()``==``https://developer.android.com/reference/androidx/media3/session/LibraryResult#RESULT_SUCCESS()` and optional `https://developer.android.com/reference/androidx/media3/session/MediaLibraryService.LibraryParams`.

### toBundle

```
@UnstableApi
public Bundle [toBundle](https://developer.android.com/reference/androidx/media3/session/LibraryResult#toBundle())()
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/session/LibraryResult#toBundle(int)` instead.

### toBundle

```
@UnstableApi
public Bundle toBundle(int interfaceVersion)
```