# VolumeProviderCompat

Artifact: [androidx.media:media](https://developer.android.com/jetpack/androidx/releases/media) [View Source](https://cs.android.com/search?q=file:androidx/media/VolumeProviderCompat.java+class:androidx.media.VolumeProviderCompat) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/media#1.1.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/media#1.8.0)

*** ** * ** ***


```
public abstract class VolumeProviderCompat
```

<br />

*** ** * ** ***

> [!CAUTION]
> **This class is deprecated.**   
>
> androidx.media is deprecated. Please migrate to [androidx.media3](https://developer.android.com/media/media3).

Handles requests to adjust or set the volume on a session. This is also used to push volume updates back to the session after a request has been handled. You can set a volume provider on a session by calling `https://developer.android.com/reference/android/support/v4/media/session/MediaSessionCompat#setPlaybackToRemote(androidx.media.VolumeProviderCompat)`.

## Summary

| ### Nested types |
|---|
| `public abstract class https://developer.android.com/reference/androidx/media/VolumeProviderCompat.Callback` **This class is deprecated.** Deprecated in Java |

| ### Constants |
|---|---|
| `static final int` | `https://developer.android.com/reference/androidx/media/VolumeProviderCompat#VOLUME_CONTROL_ABSOLUTE() = 2` **This field is deprecated.** Deprecated in Java |
| `static final int` | `https://developer.android.com/reference/androidx/media/VolumeProviderCompat#VOLUME_CONTROL_FIXED() = 0` **This field is deprecated.** Deprecated in Java |
| `static final int` | `https://developer.android.com/reference/androidx/media/VolumeProviderCompat#VOLUME_CONTROL_RELATIVE() = 1` **This field is deprecated.** Deprecated in Java |

| ### Public constructors |
|---|
| `[VolumeProviderCompat](https://developer.android.com/reference/androidx/media/VolumeProviderCompat#VolumeProviderCompat(int,int,int))( int volumeControl, int maxVolume, int currentVolume )` **This method is deprecated.** Deprecated in Java |

| ### Public methods |
|---|---|
| `final int` | `[getCurrentVolume](https://developer.android.com/reference/androidx/media/VolumeProviderCompat#getCurrentVolume())()` **This method is deprecated.** Deprecated in Java |
| `final int` | `[getMaxVolume](https://developer.android.com/reference/androidx/media/VolumeProviderCompat#getMaxVolume())()` **This method is deprecated.** Deprecated in Java |
| `final int` | `[getVolumeControl](https://developer.android.com/reference/androidx/media/VolumeProviderCompat#getVolumeControl())()` **This method is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/java/lang/Object.html` | `[getVolumeProvider](https://developer.android.com/reference/androidx/media/VolumeProviderCompat#getVolumeProvider())()` **This method is deprecated.** Deprecated in Java |
| `void` | `[onAdjustVolume](https://developer.android.com/reference/androidx/media/VolumeProviderCompat#onAdjustVolume(int))(int direction)` **This method is deprecated.** Deprecated in Java |
| `void` | `[onSetVolumeTo](https://developer.android.com/reference/androidx/media/VolumeProviderCompat#onSetVolumeTo(int))(int volume)` **This method is deprecated.** Deprecated in Java |
| `void` | `[setCallback](https://developer.android.com/reference/androidx/media/VolumeProviderCompat#setCallback(androidx.media.VolumeProviderCompat.Callback))(https://developer.android.com/reference/androidx/media/VolumeProviderCompat.Callback callback)` **This method is deprecated.** Deprecated in Java |
| `final void` | `[setCurrentVolume](https://developer.android.com/reference/androidx/media/VolumeProviderCompat#setCurrentVolume(int))(int currentVolume)` **This method is deprecated.** Deprecated in Java |

## Constants

### VOLUME_CONTROL_ABSOLUTE

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/media#1.1.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/media#1.8.0)

```
public static final int VOLUME_CONTROL_ABSOLUTE = 2
```

> [!CAUTION]
> **This field is deprecated.**   
> Deprecated in Java

The volume control uses an absolute value. It may be adjusted using `https://developer.android.com/reference/androidx/media/VolumeProviderCompat#onAdjustVolume(int)` or set directly using `https://developer.android.com/reference/androidx/media/VolumeProviderCompat#onSetVolumeTo(int)`.

### VOLUME_CONTROL_FIXED

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/media#1.1.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/media#1.8.0)

```
public static final int VOLUME_CONTROL_FIXED = 0
```

> [!CAUTION]
> **This field is deprecated.**   
> Deprecated in Java

The volume is fixed and can not be modified. Requests to change volume should be ignored.

### VOLUME_CONTROL_RELATIVE

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/media#1.1.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/media#1.8.0)

```
public static final int VOLUME_CONTROL_RELATIVE = 1
```

> [!CAUTION]
> **This field is deprecated.**   
> Deprecated in Java

The volume control uses relative adjustment via `https://developer.android.com/reference/androidx/media/VolumeProviderCompat#onAdjustVolume(int)`. Attempts to set the volume to a specific value should be ignored.

## Public constructors

### VolumeProviderCompat

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/media#1.1.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/media#1.8.0)

```
public [VolumeProviderCompat](https://developer.android.com/reference/androidx/media/VolumeProviderCompat#VolumeProviderCompat(int,int,int))(
    int volumeControl,
    int maxVolume,
    int currentVolume
)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Create a new volume provider for handling volume events. You must specify the type of volume control and the maximum volume that can be used.

| Parameters |
|---|---|
| `int volumeControl` | The method for controlling volume that is used by this provider. |
| `int maxVolume` | The maximum allowed volume. |
| `int currentVolume` | The current volume. |

## Public methods

### getCurrentVolume

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/media#1.1.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/media#1.8.0)

```
public final int [getCurrentVolume](https://developer.android.com/reference/androidx/media/VolumeProviderCompat#getCurrentVolume())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Get the current volume of the provider.

| Returns |
|---|---|
| `int` | The current volume. |

### getMaxVolume

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/media#1.1.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/media#1.8.0)

```
public final int [getMaxVolume](https://developer.android.com/reference/androidx/media/VolumeProviderCompat#getMaxVolume())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Get the maximum volume this provider allows.

| Returns |
|---|---|
| `int` | The max allowed volume. |

### getVolumeControl

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/media#1.1.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/media#1.8.0)

```
public final int [getVolumeControl](https://developer.android.com/reference/androidx/media/VolumeProviderCompat#getVolumeControl())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Get the volume control type that this volume provider uses.

| Returns |
|---|---|
| `int` | The volume control type for this volume provider |

### getVolumeProvider

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/media#1.1.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/media#1.8.0)

```
public Object [getVolumeProvider](https://developer.android.com/reference/androidx/media/VolumeProviderCompat#getVolumeProvider())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Gets the underlying framework `https://developer.android.com/reference/android/media/VolumeProvider.html` object.

This method is only supported on API 21+.

| Returns |
|---|---|
| `https://developer.android.com/reference/java/lang/Object.html` | An equivalent `https://developer.android.com/reference/android/media/VolumeProvider.html` object, or null if none. |

### onAdjustVolume

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/media#1.1.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/media#1.8.0)

```
public void [onAdjustVolume](https://developer.android.com/reference/androidx/media/VolumeProviderCompat#onAdjustVolume(int))(int direction)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Override to handle requests to adjust the volume of the current output.

| Parameters |
|---|---|
| `int direction` | The direction to adjust the volume in. |

### onSetVolumeTo

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/media#1.1.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/media#1.8.0)

```
public void [onSetVolumeTo](https://developer.android.com/reference/androidx/media/VolumeProviderCompat#onSetVolumeTo(int))(int volume)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Override to handle requests to set the volume of the current output.

| Parameters |
|---|---|
| `int volume` | The volume to set the output to. |

### setCallback

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/media#1.1.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/media#1.8.0)

```
public void [setCallback](https://developer.android.com/reference/androidx/media/VolumeProviderCompat#setCallback(androidx.media.VolumeProviderCompat.Callback))(VolumeProviderCompat.Callback callback)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets a callback to receive volume changes.

Used internally by the support library.

### setCurrentVolume

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/media#1.1.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/media#1.8.0)

```
public final void [setCurrentVolume](https://developer.android.com/reference/androidx/media/VolumeProviderCompat#setCurrentVolume(int))(int currentVolume)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Set the current volume and notify the system that the volume has been changed.

| Parameters |
|---|---|
| `int currentVolume` | The current volume of the output. |