# FakeExoMediaDrm.LicenseServer

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

*** ** * ** ***

<br />

```
public class FakeExoMediaDrm.LicenseServer implements MediaDrmCallback
```

<br />

*** ** * ** ***

An license server implementation to interact with `https://developer.android.com/reference/androidx/media3/test/utils/FakeExoMediaDrm`.

## Summary

| ### Nested types |
|---|
| `public final class https://developer.android.com/reference/androidx/media3/test/utils/FakeExoMediaDrm.LicenseServer.Builder` Builder for `https://developer.android.com/reference/androidx/media3/test/utils/FakeExoMediaDrm.LicenseServer` instances. |

| ### Public methods |
|---|---|
| `static https://developer.android.com/reference/androidx/media3/test/utils/FakeExoMediaDrm.LicenseServer` | `@https://developer.android.com/reference/java/lang/SafeVarargs.html https://developer.android.com/reference/androidx/media3/test/utils/FakeExoMediaDrm.LicenseServer#allowingSchemeDatas(java.util.List<androidx.media3.common.DrmInitData.SchemeData>...)(List[] schemeDatas)` |
| `https://developer.android.com/reference/androidx/media3/exoplayer/drm/MediaDrmCallback.Response` | `https://developer.android.com/reference/androidx/media3/test/utils/FakeExoMediaDrm.LicenseServer#executeKeyRequest(java.util.UUID,androidx.media3.exoplayer.drm.ExoMediaDrm.KeyRequest)(https://developer.android.com/reference/java/util/UUID.html uuid, https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm.KeyRequest request)` Executes a key request. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/drm/MediaDrmCallback.Response` | `https://developer.android.com/reference/androidx/media3/test/utils/FakeExoMediaDrm.LicenseServer#executeProvisionRequest(java.util.UUID,androidx.media3.exoplayer.drm.ExoMediaDrm.ProvisionRequest)( https://developer.android.com/reference/java/util/UUID.html uuid, https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm.ProvisionRequest request )` Executes a provisioning request. |
| `https://guava.dev/releases/snapshot-android/api/docs/com/google/common/collect/ImmutableList.html<https://guava.dev/releases/snapshot-android/api/docs/com/google/common/collect/ImmutableList.html<https://developer.android.com/reference/java/lang/Byte.html>>` | `https://developer.android.com/reference/androidx/media3/test/utils/FakeExoMediaDrm.LicenseServer#getReceivedProvisionRequests()()` |
| `https://guava.dev/releases/snapshot-android/api/docs/com/google/common/collect/ImmutableList.html<https://guava.dev/releases/snapshot-android/api/docs/com/google/common/collect/ImmutableList.html<https://developer.android.com/reference/androidx/media3/common/DrmInitData.SchemeData>>` | `https://developer.android.com/reference/androidx/media3/test/utils/FakeExoMediaDrm.LicenseServer#getReceivedSchemeDatas()()` |
| `static https://developer.android.com/reference/androidx/media3/test/utils/FakeExoMediaDrm.LicenseServer` | `@https://developer.android.com/reference/java/lang/SafeVarargs.html [requiringProvisioningThenAllowingSchemeDatas](https://developer.android.com/reference/androidx/media3/test/utils/FakeExoMediaDrm.LicenseServer#requiringProvisioningThenAllowingSchemeDatas(java.util.List<androidx.media3.common.DrmInitData.SchemeData>...))(List[] schemeDatas)` **This method is deprecated.** Use {link Builder} instead. <br /> |

## Public methods

### allowingSchemeDatas

```
@SafeVarargs
public static FakeExoMediaDrm.LicenseServer allowingSchemeDatas(List[] schemeDatas)
```

### executeKeyRequest

```
public MediaDrmCallback.Response executeKeyRequest(UUID uuid, ExoMediaDrm.KeyRequest request)
```

Executes a key request.

The `https://developer.android.com/reference/androidx/media3/exoplayer/source/LoadEventInfo` returned inside the `https://developer.android.com/reference/androidx/media3/exoplayer/drm/MediaDrmCallback.Response` will have the following fields unset, and they must be updated by caller before the `https://developer.android.com/reference/androidx/media3/exoplayer/source/LoadEventInfo` is used elsewhere:

- `https://developer.android.com/reference/androidx/media3/exoplayer/source/LoadEventInfo#loadTaskId()`
- `https://developer.android.com/reference/androidx/media3/exoplayer/source/LoadEventInfo#loadDurationMs()`

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/util/UUID.html uuid` | The UUID of the content protection scheme. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm.KeyRequest request` | The request. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/drm/MediaDrmCallback.Response` | The response data. |

| Throws |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/drm/MediaDrmCallbackException` | If an error occurred executing the request. |

### executeProvisionRequest

```
public MediaDrmCallback.Response executeProvisionRequest(
    UUID uuid,
    ExoMediaDrm.ProvisionRequest request
)
```

Executes a provisioning request.

The `https://developer.android.com/reference/androidx/media3/exoplayer/source/LoadEventInfo` returned inside the `https://developer.android.com/reference/androidx/media3/exoplayer/drm/MediaDrmCallback.Response` will have the following fields unset, and they must be updated by caller before the `https://developer.android.com/reference/androidx/media3/exoplayer/source/LoadEventInfo` is used elsewhere:

- `https://developer.android.com/reference/androidx/media3/exoplayer/source/LoadEventInfo#loadTaskId()`
- `https://developer.android.com/reference/androidx/media3/exoplayer/source/LoadEventInfo#loadDurationMs()`

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/util/UUID.html uuid` | The UUID of the content protection scheme. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm.ProvisionRequest request` | The request. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/drm/MediaDrmCallback.Response` | The response data. |

| Throws |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/drm/MediaDrmCallbackException` | If an error occurred executing the request. |

### getReceivedProvisionRequests

```
public ImmutableList<ImmutableList<Byte>> getReceivedProvisionRequests()
```

### getReceivedSchemeDatas

```
public ImmutableList<ImmutableList<DrmInitData.SchemeData>> getReceivedSchemeDatas()
```

### requiringProvisioningThenAllowingSchemeDatas

```
@SafeVarargs
public static FakeExoMediaDrm.LicenseServer [requiringProvisioningThenAllowingSchemeDatas](https://developer.android.com/reference/androidx/media3/test/utils/FakeExoMediaDrm.LicenseServer#requiringProvisioningThenAllowingSchemeDatas(java.util.List<androidx.media3.common.DrmInitData.SchemeData>...))(List[] schemeDatas)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use {link Builder} instead.