Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

# Callback

*** ** * ** ***

Kotlin \|[Java](https://developer.android.com/reference/android/telecom/RemoteConnection.VideoProvider.Callback "View this page in Java")

```
abstract class Callback
```

|---|---|
| [kotlin.Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html) ||
| ↳ | [android.telecom.RemoteConnection.VideoProvider.Callback](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider.Callback#) |

Callback class used by the `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider` to relay events from the `https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider`.

## Summary

| Public constructors ||
|---|---|
| `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider.Callback#Callback()()` <br /> |

| Public methods ||
|---|---|
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider.Callback#onCallDataUsageChanged(android.telecom.RemoteConnection.VideoProvider,%20kotlin.Long)(videoProvider: https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider!, dataUsage: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html)` Reports a change in the data usage (in bytes) received from the `https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider` associated with a `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection`. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider.Callback#onCallSessionEvent(android.telecom.RemoteConnection.VideoProvider,%20kotlin.Int)(videoProvider: https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider!, event: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)` Reports a call session event received from the `https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider` associated with a `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection`. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider.Callback#onCameraCapabilitiesChanged(android.telecom.RemoteConnection.VideoProvider,%20android.telecom.VideoProfile.CameraCapabilities)(videoProvider: https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider!, cameraCapabilities: https://developer.android.com/reference/kotlin/android/telecom/VideoProfile.CameraCapabilities!)` Reports a change in the capabilities of the current camera, received from the `https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider` associated with a `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection`. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider.Callback#onPeerDimensionsChanged(android.telecom.RemoteConnection.VideoProvider,%20kotlin.Int,%20kotlin.Int)(videoProvider: https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider!, width: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html, height: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)` Reports a change in the peer video dimensions received from the `https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider` associated with a `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection`. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider.Callback#onSessionModifyRequestReceived(android.telecom.RemoteConnection.VideoProvider,%20android.telecom.VideoProfile)(videoProvider: https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider!, videoProfile: https://developer.android.com/reference/kotlin/android/telecom/VideoProfile!)` Reports a session modification request received from the `https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider` associated with a `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection`. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider.Callback#onSessionModifyResponseReceived(android.telecom.RemoteConnection.VideoProvider,%20kotlin.Int,%20android.telecom.VideoProfile,%20android.telecom.VideoProfile)(videoProvider: https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider!, status: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html, requestedProfile: https://developer.android.com/reference/kotlin/android/telecom/VideoProfile!, responseProfile: https://developer.android.com/reference/kotlin/android/telecom/VideoProfile!)` Reports a session modification response received from the `https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider` associated with a `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection`. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider.Callback#onVideoQualityChanged(android.telecom.RemoteConnection.VideoProvider,%20kotlin.Int)(videoProvider: https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider!, videoQuality: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)` Reports a change in the video quality received from the `https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider` associated with a `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection`. |

## Public constructors

### Callback

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
Callback()
```

## Public methods

### onCallDataUsageChanged

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun onCallDataUsageChanged(
    videoProvider: RemoteConnection.VideoProvider!, 
    dataUsage: Long
): Unit
```

Reports a change in the data usage (in bytes) received from the `https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider` associated with a `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection`.

| Parameters ||
|---|---|
| `videoProvider` | [RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider)!: The `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider` invoking this method. |
| `dataUsage` | [Long](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html): The updated data usage (in bytes). |

**See Also**

- `https://developer.android.com/reference/kotlin/android/telecom/InCallService.VideoCall.Callback#onCallDataUsageChanged(kotlin.Long)`
- `https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider#setCallDataUsage(kotlin.Long)`

### onCallSessionEvent

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun onCallSessionEvent(
    videoProvider: RemoteConnection.VideoProvider!, 
    event: Int
): Unit
```

Reports a call session event received from the `https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider` associated with a `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection`.

| Parameters ||
|---|---|
| `videoProvider` | [RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider)!: The `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider` invoking this method. |
| `event` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html): The event. |

**See Also**

- `https://developer.android.com/reference/kotlin/android/telecom/InCallService.VideoCall.Callback#onCallSessionEvent(kotlin.Int)`
- `https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider#handleCallSessionEvent(kotlin.Int)`

### onCameraCapabilitiesChanged

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun onCameraCapabilitiesChanged(
    videoProvider: RemoteConnection.VideoProvider!, 
    cameraCapabilities: VideoProfile.CameraCapabilities!
): Unit
```

Reports a change in the capabilities of the current camera, received from the `https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider` associated with a `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection`.

| Parameters ||
|---|---|
| `videoProvider` | [RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider)!: The `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider` invoking this method. |
| `cameraCapabilities` | [VideoProfile.CameraCapabilities](https://developer.android.com/reference/kotlin/android/telecom/VideoProfile.CameraCapabilities)!: The changed camera capabilities. |

**See Also**

- `https://developer.android.com/reference/kotlin/android/telecom/InCallService.VideoCall.Callback#onCameraCapabilitiesChanged(android.telecom.VideoProfile.CameraCapabilities)`
- `https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider#changeCameraCapabilities(android.telecom.VideoProfile.CameraCapabilities)`

### onPeerDimensionsChanged

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun onPeerDimensionsChanged(
    videoProvider: RemoteConnection.VideoProvider!, 
    width: Int, 
    height: Int
): Unit
```

Reports a change in the peer video dimensions received from the `https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider` associated with a `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection`.

| Parameters ||
|---|---|
| `videoProvider` | [RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider)!: The `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider` invoking this method. |
| `width` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html): The updated peer video width. |
| `height` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html): The updated peer video height. |

**See Also**

- `https://developer.android.com/reference/kotlin/android/telecom/InCallService.VideoCall.Callback#onPeerDimensionsChanged(kotlin.Int,%20kotlin.Int)`
- `https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider#changePeerDimensions(kotlin.Int,%20kotlin.Int)`

### onSessionModifyRequestReceived

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun onSessionModifyRequestReceived(
    videoProvider: RemoteConnection.VideoProvider!, 
    videoProfile: VideoProfile!
): Unit
```

Reports a session modification request received from the `https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider` associated with a `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection`.

| Parameters ||
|---|---|
| `videoProvider` | [RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider)!: The `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider` invoking this method. |
| `videoProfile` | [VideoProfile](https://developer.android.com/reference/kotlin/android/telecom/VideoProfile)!: The requested video call profile. |

**See Also**

- `https://developer.android.com/reference/kotlin/android/telecom/InCallService.VideoCall.Callback#onSessionModifyRequestReceived(android.telecom.VideoProfile)`
- `https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider#receiveSessionModifyRequest(android.telecom.VideoProfile)`

### onSessionModifyResponseReceived

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun onSessionModifyResponseReceived(
    videoProvider: RemoteConnection.VideoProvider!, 
    status: Int, 
    requestedProfile: VideoProfile!, 
    responseProfile: VideoProfile!
): Unit
```

Reports a session modification response received from the `https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider` associated with a `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection`.

| Parameters ||
|---|---|
| `videoProvider` | [RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider)!: The `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider` invoking this method. |
| `status` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html): Status of the session modify request. |
| `requestedProfile` | [VideoProfile](https://developer.android.com/reference/kotlin/android/telecom/VideoProfile)!: The original request which was sent to the peer device. |
| `responseProfile` | [VideoProfile](https://developer.android.com/reference/kotlin/android/telecom/VideoProfile)!: The actual profile changes made by the peer device. |

**See Also**

- `https://developer.android.com/reference/kotlin/android/telecom/InCallService.VideoCall.Callback#onSessionModifyResponseReceived(kotlin.Int,%20android.telecom.VideoProfile,%20android.telecom.VideoProfile)`
- `https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider#receiveSessionModifyResponse(kotlin.Int,%20android.telecom.VideoProfile,%20android.telecom.VideoProfile)`

### onVideoQualityChanged

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun onVideoQualityChanged(
    videoProvider: RemoteConnection.VideoProvider!, 
    videoQuality: Int
): Unit
```

Reports a change in the video quality received from the `https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider` associated with a `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection`.

| Parameters ||
|---|---|
| `videoProvider` | [RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider)!: The `https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider` invoking this method. |
| `videoQuality` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html): The updated peer video quality. |

**See Also**

- `https://developer.android.com/reference/kotlin/android/telecom/InCallService.VideoCall.Callback#onVideoQualityChanged(kotlin.Int)`
- `https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider#changeVideoQuality(kotlin.Int)`