# Print output for @column tags ?>
Developers

- Design
- Develop
- Distribute

Developer Console

## Most visited

## Recently visited

## Results for

Summary: Ctors | Methods | Inherited Methods

# InCallService.VideoCall.Callback

`public static abstract class InCallService.VideoCall.Callback`
`extends Object` ``

java.lang.Object
↳ | android.telecom.InCallService.VideoCall.Callback

The `InCallService` extends this class to provide a means of receiving callbacks from the `Connection.VideoProvider`.

When the `InCallService` receives the `Call.Callback#onVideoCallChanged(Call, VideoCall)` callback, it should create an instance its `VideoCall.Callback` implementation and set it on the `VideoCall` using `VideoCall#registerCallback(Callback)`.

## Summary

### Public constructors
`Callback()`

### Public methods
`abstract void` | `onCallDataUsageChanged(long dataUsage)` Handles an update to the total data used for the current video session.
`abstract void` | `onCallSessionEvent(int event)` Handles events related to the current video session which the `InCallService` may wish to handle.
`abstract void` | `onCameraCapabilitiesChanged(VideoProfile.CameraCapabilities cameraCapabilities)` Handles a change in the capabilities of the currently selected camera.
`abstract void` | `onPeerDimensionsChanged(int width, int height)` Handles a change to the video dimensions from the peer device.
`abstract void` | `onSessionModifyRequestReceived(VideoProfile videoProfile)` Called when the `Connection.VideoProvider` receives a session modification request from the peer device.
`abstract void` | `onSessionModifyResponseReceived(int status, VideoProfile requestedProfile, VideoProfile responseProfile)` Called when the `Connection.VideoProvider` receives a response to a session modification request previously sent to the peer device.
`abstract void` | `onVideoQualityChanged(int videoQuality)` Handles a change to the video quality.

### Inherited methods
From class `java.lang.Object`
`Object` | `clone()` Creates and returns a copy of this object.
`boolean` | `equals(Object obj)` Indicates whether some other object is "equal to" this one.
`void` | `finalize()` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
`final Class<?>` | `getClass()` Returns the runtime class of this `Object`.
`int` | `hashCode()` Returns a hash code value for the object.
`final void` | `notify()` Wakes up a single thread that is waiting on this object's monitor.
`final void` | `notifyAll()` Wakes up all threads that are waiting on this object's monitor.
`String` | `toString()` Returns a string representation of the object.
`final void` | `wait(long timeout, int nanos)` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object, or some other thread interrupts the current thread, or a certain amount of real time has elapsed.
`final void` | `wait(long timeout)` Causes the current thread to wait until either another thread invokes the `notify()` method or the `notifyAll()` method for this object, or a specified amount of time has elapsed.
`final void` | `wait()` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object.

## Public constructors

### Callback

    public Callback ()

## Public methods

### onCallDataUsageChanged

    public abstract void onCallDataUsageChanged (long dataUsage)

Handles an update to the total data used for the current video session.

Used by the `Connection.VideoProvider` in response to `VideoCall#requestCallDataUsage()`. May also be called periodically by the `Connection.VideoProvider`.

Callback originates from `Connection.VideoProvider#setCallDataUsage(long)`.

Parameters
`dataUsage` | `long`: The updated data usage (in bytes).

### onCallSessionEvent

    public abstract void onCallSessionEvent (int event)

Handles events related to the current video session which the `InCallService` may wish to handle. These are separate from requested changes to the session due to the underlying protocol or connection.

Callback originates from `Connection.VideoProvider#handleCallSessionEvent(int)`.

Parameters
`event` | `int`: The event. Valid values are: `Connection.VideoProvider#SESSION_EVENT_RX_PAUSE`, `Connection.VideoProvider#SESSION_EVENT_RX_RESUME`, `Connection.VideoProvider#SESSION_EVENT_TX_START`, `Connection.VideoProvider#SESSION_EVENT_TX_STOP`, `Connection.VideoProvider#SESSION_EVENT_CAMERA_FAILURE`, `Connection.VideoProvider#SESSION_EVENT_CAMERA_READY`, `Connection.VideoProvider#SESSION_EVENT_CAMERA_PERMISSION_ERROR`.

### onCameraCapabilitiesChanged

    public abstract void onCameraCapabilitiesChanged (VideoProfile.CameraCapabilities cameraCapabilities)

Handles a change in the capabilities of the currently selected camera.

Used by the `Connection.VideoProvider` in response to `VideoCall#requestCameraCapabilities()`. The `Connection.VideoProvider` may also report the camera capabilities after a call to `VideoCall#setCamera(String)`.

Callback originates from `Connection.VideoProvider#changeCameraCapabilities( VideoProfile.CameraCapabilities)`.

Parameters
`cameraCapabilities` | `VideoProfile.CameraCapabilities`: The changed camera capabilities.

### onPeerDimensionsChanged

    public abstract void onPeerDimensionsChanged (int width,
                    int height)

Handles a change to the video dimensions from the peer device. This could happen if, for example, the peer changes orientation of their device, or switches cameras.

Callback originates from `Connection.VideoProvider#changePeerDimensions(int, int)`.

Parameters
`width` | `int`: The updated peer video width.
`height` | `int`: The updated peer video height.

### onSessionModifyRequestReceived

    public abstract void onSessionModifyRequestReceived (VideoProfile videoProfile)

Called when the `Connection.VideoProvider` receives a session modification request from the peer device.

The `InCallService` may potentially prompt the user to confirm whether they wish to accept the request, or decide to automatically accept the request. In either case the `InCallService` should call `VideoCall#sendSessionModifyResponse(VideoProfile)` to indicate the video profile agreed upon.

Callback originates from `Connection.VideoProvider#receiveSessionModifyRequest(VideoProfile)`.

Parameters
`videoProfile` | `VideoProfile`: The requested video profile.

### onSessionModifyResponseReceived

    public abstract void onSessionModifyResponseReceived (int status,
                    VideoProfile requestedProfile,
                    VideoProfile responseProfile)

Called when the `Connection.VideoProvider` receives a response to a session modification request previously sent to the peer device.

The new video state should not be considered active by the `InCallService` until the `Call` video state changes (the `Call.Callback#onDetailsChanged(Call, Call.Details)` callback is triggered when the video state changes).

Callback originates from `Connection.VideoProvider#receiveSessionModifyResponse(int, VideoProfile, VideoProfile)`.

Parameters
`status` | `int`: Status of the session modify request. Valid values are `Connection.VideoProvider#SESSION_MODIFY_REQUEST_SUCCESS`, `Connection.VideoProvider#SESSION_MODIFY_REQUEST_FAIL`, `Connection.VideoProvider#SESSION_MODIFY_REQUEST_INVALID`, `Connection.VideoProvider#SESSION_MODIFY_REQUEST_TIMED_OUT`, `Connection.VideoProvider#SESSION_MODIFY_REQUEST_REJECTED_BY_REMOTE`.
`requestedProfile` | `VideoProfile`: The original request which was sent to the peer device.
`responseProfile` | `VideoProfile`: The actual profile changes made by the peer device.

### onVideoQualityChanged

    public abstract void onVideoQualityChanged (int videoQuality)

Handles a change to the video quality.

Callback originates from `Connection.VideoProvider#changeVideoQuality(int)`.

Parameters
`videoQuality` | `int`: The updated peer video quality. Valid values: `VideoProfile#QUALITY_HIGH`, `VideoProfile#QUALITY_MEDIUM`, `VideoProfile#QUALITY_LOW`, `VideoProfile#QUALITY_DEFAULT`.

Full name *
Email address *
Company / developer name
One of your Play Store app URLs *
Which best describes your business:*
Apps
Games
Apps & Games
*
*