# DummyExoMediaDrm

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

*** ** * ** ***


```
@UnstableApi
public final class DummyExoMediaDrm implements ExoMediaDrm
```

<br />

*** ** * ** ***

An `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm` that does not support any protection schemes.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DummyExoMediaDrm#DummyExoMediaDrm()()` |

| ### Public methods |
|---|---|
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DummyExoMediaDrm#acquire()()` Increments the reference count. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DummyExoMediaDrm#closeSession(byte[])(byte[] sessionId)` Closes a DRM session. |
| `https://developer.android.com/reference/androidx/media3/decoder/CryptoConfig` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DummyExoMediaDrm#createCryptoConfig(byte[])(byte[] sessionId)` Creates a `https://developer.android.com/reference/androidx/media3/decoder/CryptoConfig` that can be passed to a compatible decoder to allow decryption of protected content using the specified session. |
| `int` | `@https://developer.android.com/reference/androidx/media3/common/C.CryptoType https://developer.android.com/reference/androidx/media3/exoplayer/drm/DummyExoMediaDrm#getCryptoType()()` Returns the `https://developer.android.com/reference/androidx/media3/common/C.CryptoType` of `https://developer.android.com/reference/androidx/media3/decoder/CryptoConfig` instances returned by `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#createCryptoConfig(byte[])`. |
| `static https://developer.android.com/reference/androidx/media3/exoplayer/drm/DummyExoMediaDrm` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DummyExoMediaDrm#getInstance()()` Returns a new instance. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm.KeyRequest` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DummyExoMediaDrm#getKeyRequest(byte[],java.util.List<androidx.media3.common.DrmInitData.SchemeData>,int,java.util.HashMap<java.lang.String,java.lang.String>)( byte[] scope, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/DrmInitData.SchemeData> schemeDatas, int keyType, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/util/HashMap.html<https://developer.android.com/reference/java/lang/String.html, https://developer.android.com/reference/java/lang/String.html> optionalParameters )` Generates a key request. |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/os/PersistableBundle.html` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DummyExoMediaDrm#getMetrics()()` Returns metrics data for this ExoMediaDrm instance, or `null` if metrics are unavailable. |
| `byte[]` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DummyExoMediaDrm#getPropertyByteArray(java.lang.String)(https://developer.android.com/reference/java/lang/String.html propertyName)` Returns the value of a byte array property. |
| `https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DummyExoMediaDrm#getPropertyString(java.lang.String)(https://developer.android.com/reference/java/lang/String.html propertyName)` Returns the value of a string property. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm.ProvisionRequest` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DummyExoMediaDrm#getProvisionRequest()()` Generates a provisioning request. |
| `byte[]` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DummyExoMediaDrm#openSession()()` Opens a new DRM session. |
| `@https://developer.android.com/reference/androidx/annotation/Nullable byte[]` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DummyExoMediaDrm#provideKeyResponse(byte[],byte[])(byte[] scope, byte[] response)` Provides a key response for the last request to be generated using `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#getKeyRequest(byte[],java.util.List<androidx.media3.common.DrmInitData.SchemeData>,int,java.util.HashMap<java.lang.String,java.lang.String>)`. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DummyExoMediaDrm#provideProvisionResponse(byte[])(byte[] response)` Provides a provisioning response for the last request to be generated using `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#getProvisionRequest()`. |
| `https://developer.android.com/reference/java/util/Map.html<https://developer.android.com/reference/java/lang/String.html, https://developer.android.com/reference/java/lang/String.html>` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DummyExoMediaDrm#queryKeyStatus(byte[])(byte[] sessionId)` Returns the key status for a given session, as {name, value} pairs. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DummyExoMediaDrm#release()()` Decrements the reference count. |
| `boolean` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DummyExoMediaDrm#requiresSecureDecoder(byte[],java.lang.String)(byte[] sessionId, https://developer.android.com/reference/java/lang/String.html mimeType)` Returns whether the given session requires use of a secure decoder for the given MIME type. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DummyExoMediaDrm#restoreKeys(byte[],byte[])(byte[] sessionId, byte[] keySetId)` Restores persisted offline keys into a session. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DummyExoMediaDrm#setOnEventListener(androidx.media3.exoplayer.drm.ExoMediaDrm.OnEventListener)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm.OnEventListener listener)` Sets the listener for DRM events. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DummyExoMediaDrm#setOnExpirationUpdateListener(androidx.media3.exoplayer.drm.ExoMediaDrm.OnExpirationUpdateListener)( @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm.OnExpirationUpdateListener listener )` Sets the listener for session expiration events. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DummyExoMediaDrm#setOnKeyStatusChangeListener(androidx.media3.exoplayer.drm.ExoMediaDrm.OnKeyStatusChangeListener)( @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm.OnKeyStatusChangeListener listener )` Sets the listener for key status change events. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DummyExoMediaDrm#setPropertyByteArray(java.lang.String,byte[])(https://developer.android.com/reference/java/lang/String.html propertyName, byte[] value)` Sets the value of a byte array property. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DummyExoMediaDrm#setPropertyString(java.lang.String,java.lang.String)(https://developer.android.com/reference/java/lang/String.html propertyName, https://developer.android.com/reference/java/lang/String.html value)` Sets the value of a string property. |

| ### Inherited Constants |
|---|
| From [androidx.media3.exoplayer.drm.ExoMediaDrm](https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm) |---|---| | `static final int` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#EVENT_KEY_EXPIRED() = 3` Event indicating that keys have expired, and are no longer usable. | | `static final int` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#EVENT_KEY_REQUIRED() = 2` Event indicating that keys need to be requested from the license server. | | `static final int` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#EVENT_PROVISION_REQUIRED() = 1` Event indicating that a certificate needs to be requested from the provisioning server. | | `static final int` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#KEY_TYPE_OFFLINE() = 2` Key request type for keys that will be used for offline use. | | `static final int` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#KEY_TYPE_RELEASE() = 3` Key request type indicating that saved offline keys should be released. | | `static final int` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#KEY_TYPE_STREAMING() = 1` Key request type for keys that will be used for online use. | |

| ### Inherited methods |
|---|
| From [androidx.media3.exoplayer.drm.ExoMediaDrm](https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm) |---|---| | `https://developer.android.com/reference/java/util/List.html<byte[]>` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#getOfflineLicenseKeySetIds()()` Returns a list of the `keySetIds` for all offline licenses. | | `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#removeOfflineLicense(byte[])(byte[] keySetId)` Removes an offline license. | | `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#setPlayerIdForSession(byte[],androidx.media3.exoplayer.analytics.PlayerId)(byte[] sessionId, https://developer.android.com/reference/androidx/media3/exoplayer/analytics/PlayerId playerId)` Sets the `https://developer.android.com/reference/androidx/media3/exoplayer/analytics/PlayerId` of the player using a session. | |

## Public constructors

### DummyExoMediaDrm

```
public DummyExoMediaDrm()
```

## Public methods

### acquire

```
public void acquire()
```

Increments the reference count. When the caller no longer needs to use the instance, it must call `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#release()` to decrement the reference count.

A new instance will have an initial reference count of 1, and therefore it is not normally necessary for application code to call this method.

### closeSession

```
public void closeSession(byte[] sessionId)
```

Closes a DRM session.

| Parameters |
|---|---|
| `byte[] sessionId` | The ID of the session to close. |

### createCryptoConfig

```
public CryptoConfig createCryptoConfig(byte[] sessionId)
```

Creates a `https://developer.android.com/reference/androidx/media3/decoder/CryptoConfig` that can be passed to a compatible decoder to allow decryption of protected content using the specified session.

| Parameters |
|---|---|
| `byte[] sessionId` | The ID of the session. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/decoder/CryptoConfig` | A `https://developer.android.com/reference/androidx/media3/decoder/CryptoConfig` for the given session. |

| Throws |
|---|---|
| `https://developer.android.com/reference/android/media/MediaCryptoException.html` | If a `https://developer.android.com/reference/androidx/media3/decoder/CryptoConfig` could not be created. |

### getCryptoType

```
@C.CryptoType
public int getCryptoType()
```

Returns the `https://developer.android.com/reference/androidx/media3/common/C.CryptoType` of `https://developer.android.com/reference/androidx/media3/decoder/CryptoConfig` instances returned by `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#createCryptoConfig(byte[])`.

### getInstance

```
public static DummyExoMediaDrm getInstance()
```

Returns a new instance.

### getKeyRequest

```
public ExoMediaDrm.KeyRequest getKeyRequest(
    byte[] scope,
    @Nullable List<DrmInitData.SchemeData> schemeDatas,
    int keyType,
    @Nullable HashMap<String, String> optionalParameters
)
```

Generates a key request.

| Parameters |
|---|---|
| `byte[] scope` | If `keyType` is `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#KEY_TYPE_STREAMING()` or `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#KEY_TYPE_OFFLINE()`, the ID of the session that the keys will be provided to. If `keyType` is `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#KEY_TYPE_RELEASE()`, the `keySetId` of the keys to release. |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/DrmInitData.SchemeData> schemeDatas` | If key type is `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#KEY_TYPE_STREAMING()` or `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#KEY_TYPE_OFFLINE()`, a list of `https://developer.android.com/reference/androidx/media3/common/DrmInitData.SchemeData` instances extracted from the media. Null otherwise. |
| `int keyType` | The type of the request. Either `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#KEY_TYPE_STREAMING()` to acquire keys for streaming, `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#KEY_TYPE_OFFLINE()` to acquire keys for offline usage, or `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#KEY_TYPE_RELEASE()` to release acquired keys. Releasing keys invalidates them for all sessions. |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/util/HashMap.html<https://developer.android.com/reference/java/lang/String.html, https://developer.android.com/reference/java/lang/String.html> optionalParameters` | Are included in the key request message to allow a client application to provide additional message parameters to the server. This may be `null` if no additional parameters are to be sent. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm.KeyRequest` | The generated key request. |

| See also |
|---|---|
| `https://developer.android.com/reference/android/media/MediaDrm.html#getKeyRequest(byte[], byte[], java.lang.String, int, java.util.HashMap&lt;java.lang.String,java.lang.String&gt;)` |   |

### getMetrics

```
public @Nullable PersistableBundle getMetrics()
```

Returns metrics data for this ExoMediaDrm instance, or `null` if metrics are unavailable.

### getPropertyByteArray

```
public byte[] getPropertyByteArray(String propertyName)
```

Returns the value of a byte array property. For standard property names, see `https://developer.android.com/reference/android/media/MediaDrm.html#getPropertyByteArray(java.lang.String)`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/lang/String.html propertyName` | The property name. |

| Returns |
|---|---|
| `byte[]` | The property value. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException.html` | If the underlying DRM plugin does not support the property. |

### getPropertyString

```
public String getPropertyString(String propertyName)
```

Returns the value of a string property. For standard property names, see `https://developer.android.com/reference/android/media/MediaDrm.html#getPropertyString(java.lang.String)`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/lang/String.html propertyName` | The property name. |

| Returns |
|---|---|
| `https://developer.android.com/reference/java/lang/String.html` | The property value. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException.html` | If the underlying DRM plugin does not support the property. |

### getProvisionRequest

```
public ExoMediaDrm.ProvisionRequest getProvisionRequest()
```

Generates a provisioning request.

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm.ProvisionRequest` | The generated provisioning request. |

### openSession

```
public byte[] openSession()
```

Opens a new DRM session. A session ID is returned.

| Returns |
|---|---|
| `byte[]` | The session ID. |

| Throws |
|---|---|
| `https://developer.android.com/reference/android/media/NotProvisionedException.html` | If provisioning is needed. |
| `https://developer.android.com/reference/android/media/ResourceBusyException.html` | If required resources are in use. |
| `https://developer.android.com/reference/android/media/MediaDrmException.html` | If the session could not be opened. |

### provideKeyResponse

```
public @Nullable byte[] provideKeyResponse(byte[] scope, byte[] response)
```

Provides a key response for the last request to be generated using `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#getKeyRequest(byte[],java.util.List<androidx.media3.common.DrmInitData.SchemeData>,int,java.util.HashMap<java.lang.String,java.lang.String>)`.

| Parameters |
|---|---|
| `byte[] scope` | If the request had type `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#KEY_TYPE_STREAMING()` or `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#KEY_TYPE_OFFLINE()`, the ID of the session to provide the keys to. If `keyType` is `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#KEY_TYPE_RELEASE()`, the `keySetId` of the keys being released. |
| `byte[] response` | The response data from the server. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable byte[]` | If the request had type `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#KEY_TYPE_OFFLINE()`, the `keySetId` for the offline keys. An empty byte array or `null` may be returned for other cases. |

| Throws |
|---|---|
| `https://developer.android.com/reference/android/media/NotProvisionedException.html` | If the response indicates that provisioning is needed. |
| `https://developer.android.com/reference/android/media/DeniedByServerException.html` | If the response indicates that the server rejected the request. |

### provideProvisionResponse

```
public void provideProvisionResponse(byte[] response)
```

Provides a provisioning response for the last request to be generated using `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#getProvisionRequest()`.

| Parameters |
|---|---|
| `byte[] response` | The response data from the server. |

| Throws |
|---|---|
| `https://developer.android.com/reference/android/media/DeniedByServerException.html` | If the response indicates that the server rejected the request. |

### queryKeyStatus

```
public Map<String, String> queryKeyStatus(byte[] sessionId)
```

Returns the key status for a given session, as {name, value} pairs. Since DRM license policies vary by vendor, the returned entries depend on the DRM plugin being used. Refer to your DRM provider's documentation for more information.

| Parameters |
|---|---|
| `byte[] sessionId` | The ID of the session being queried. |

| Returns |
|---|---|
| `https://developer.android.com/reference/java/util/Map.html<https://developer.android.com/reference/java/lang/String.html, https://developer.android.com/reference/java/lang/String.html>` | The key status for the session. |

### release

```
public void release()
```

Decrements the reference count. If the reference count drops to 0 underlying resources are released, and the instance cannot be re-used.

### requiresSecureDecoder

```
public boolean requiresSecureDecoder(byte[] sessionId, String mimeType)
```

Returns whether the given session requires use of a secure decoder for the given MIME type. Assumes a license policy that requires the highest level of security supported by the session.

| Parameters |
|---|---|
| `byte[] sessionId` | The ID of the session. |
| `https://developer.android.com/reference/java/lang/String.html mimeType` | The content MIME type to query. |

### restoreKeys

```
public void restoreKeys(byte[] sessionId, byte[] keySetId)
```

Restores persisted offline keys into a session.

| Parameters |
|---|---|
| `byte[] sessionId` | The ID of the session into which the keys will be restored. |
| `byte[] keySetId` | The `keySetId` of the keys to restore, as provided by the call to `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#provideKeyResponse(byte[],byte[])` that persisted them. |

### setOnEventListener

```
public void setOnEventListener(@Nullable ExoMediaDrm.OnEventListener listener)
```

Sets the listener for DRM events.

This is an optional method, and some implementations may only support it on certain Android API levels.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm.OnEventListener listener` | The listener to receive events, or `null` to stop receiving events. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/UnsupportedOperationException.html` | if the implementation doesn't support this method. |

| See also |
|---|---|
| `https://developer.android.com/reference/android/media/MediaDrm.html#setOnEventListener(android.media.MediaDrm.OnEventListener)` |   |

### setOnExpirationUpdateListener

```
public void setOnExpirationUpdateListener(
    @Nullable ExoMediaDrm.OnExpirationUpdateListener listener
)
```

Sets the listener for session expiration events.

This is an optional method, and some implementations may only support it on certain Android API levels.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm.OnExpirationUpdateListener listener` | The listener to receive events, or `null` to stop receiving events. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/UnsupportedOperationException.html` | if the implementation doesn't support this method. |

| See also |
|---|---|
| `https://developer.android.com/reference/android/media/MediaDrm.html#setOnExpirationUpdateListener(android.media.MediaDrm.OnExpirationUpdateListener, android.os.Handler)` |   |

### setOnKeyStatusChangeListener

```
public void setOnKeyStatusChangeListener(
    @Nullable ExoMediaDrm.OnKeyStatusChangeListener listener
)
```

Sets the listener for key status change events.

This is an optional method, and some implementations may only support it on certain Android API levels.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm.OnKeyStatusChangeListener listener` | The listener to receive events, or `null` to stop receiving events. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/UnsupportedOperationException.html` | if the implementation doesn't support this method. |

| See also |
|---|---|
| `https://developer.android.com/reference/android/media/MediaDrm.html#setOnKeyStatusChangeListener(android.media.MediaDrm.OnKeyStatusChangeListener, android.os.Handler)` |   |

### setPropertyByteArray

```
public void setPropertyByteArray(String propertyName, byte[] value)
```

Sets the value of a byte array property.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/lang/String.html propertyName` | The property name. |
| `byte[] value` | The value. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException.html` | If the underlying DRM plugin does not support the property. |

### setPropertyString

```
public void setPropertyString(String propertyName, String value)
```

Sets the value of a string property.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/lang/String.html propertyName` | The property name. |
| `https://developer.android.com/reference/java/lang/String.html value` | The value. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException.html` | If the underlying DRM plugin does not support the property. |