Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Nested Classes](https://developer.android.com/reference/android/telecom/VideoProfile#nestedclasses) \| [Constants](https://developer.android.com/reference/android/telecom/VideoProfile#constants) \| [Inherited Constants](https://developer.android.com/reference/android/telecom/VideoProfile#inhconstants) \| [Fields](https://developer.android.com/reference/android/telecom/VideoProfile#lfields) \| [Ctors](https://developer.android.com/reference/android/telecom/VideoProfile#pubctors) \| [Methods](https://developer.android.com/reference/android/telecom/VideoProfile#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/telecom/VideoProfile#inhmethods)

# VideoProfile

*** ** * ** ***

` public class VideoProfile `   
` extends https://developer.android.com/reference/java/lang/Object ` ` implements https://developer.android.com/reference/android/os/Parcelable `

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.telecom.VideoProfile |

<br />

*** ** * ** ***

Represents attributes of video calls.

## Summary

| ### Nested classes ||
|---|---|
| ` class` | `https://developer.android.com/reference/android/telecom/VideoProfile.CameraCapabilities` Represents the camera capabilities important to a Video Telephony provider. |

| ### Constants ||
|---|---|
| `int` | `https://developer.android.com/reference/android/telecom/VideoProfile#QUALITY_DEFAULT` Use default video quality. |
| `int` | `https://developer.android.com/reference/android/telecom/VideoProfile#QUALITY_HIGH` "High" video quality. |
| `int` | `https://developer.android.com/reference/android/telecom/VideoProfile#QUALITY_LOW` "Low" video quality. |
| `int` | `https://developer.android.com/reference/android/telecom/VideoProfile#QUALITY_MEDIUM` "Medium" video quality. |
| `int` | `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_AUDIO_ONLY` Used when answering or dialing a call to indicate that the call does not have a video component. |
| `int` | `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_BIDIRECTIONAL` Video signal is bi-directional. |
| `int` | `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_PAUSED` Video is paused. |
| `int` | `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_RX_ENABLED` Video reception is enabled. |
| `int` | `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_TX_ENABLED` Video transmission is enabled. |

### Inherited constants

From interface `https://developer.android.com/reference/android/os/Parcelable` `int` `https://developer.android.com/reference/android/os/Parcelable#CONTENTS_FILE_DESCRIPTOR`

Descriptor bit used with `https://developer.android.com/reference/android/os/Parcelable#describeContents()`: indicates that the Parcelable object's flattened representation includes a file descriptor.
`int` `https://developer.android.com/reference/android/os/Parcelable#PARCELABLE_WRITE_RETURN_VALUE`

Flag for use with `https://developer.android.com/reference/android/os/Parcelable#writeToParcel(android.os.Parcel,%20int)`: the object being written is a return value, that is the result of a function such as "`Parcelable someFunction()`", "`void someFunction(out Parcelable)`", or "`void someFunction(inout Parcelable)`".

| ### Fields ||
|---|---|
| ` public static final https://developer.android.com/reference/android/os/Parcelable.Creator<https://developer.android.com/reference/android/telecom/VideoProfile>` | `https://developer.android.com/reference/android/telecom/VideoProfile#CREATOR` Responsible for creating VideoProfile objects from deserialized Parcels. |

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/telecom/VideoProfile#VideoProfile(int)(int videoState) ` Creates an instance of the VideoProfile |
| ` https://developer.android.com/reference/android/telecom/VideoProfile#VideoProfile(int,%20int)(int videoState, int quality) ` Creates an instance of the VideoProfile |

| ### Public methods ||
|---|---|
| ` int` | ` https://developer.android.com/reference/android/telecom/VideoProfile#describeContents()() ` Describe the kinds of special objects contained in this Parcelable's marshalled representation. |
| ` int` | ` https://developer.android.com/reference/android/telecom/VideoProfile#getQuality()() ` The desired video quality for the call. |
| ` int` | ` https://developer.android.com/reference/android/telecom/VideoProfile#getVideoState()() ` The video state of the call. |
| ` static boolean` | ` https://developer.android.com/reference/android/telecom/VideoProfile#isAudioOnly(int)(int videoState) ` Indicates whether the video state is audio only. |
| ` static boolean` | ` https://developer.android.com/reference/android/telecom/VideoProfile#isBidirectional(int)(int videoState) ` Indicates whether the video state is bi-directional. |
| ` static boolean` | ` https://developer.android.com/reference/android/telecom/VideoProfile#isPaused(int)(int videoState) ` Indicates whether the video state is paused. |
| ` static boolean` | ` https://developer.android.com/reference/android/telecom/VideoProfile#isReceptionEnabled(int)(int videoState) ` Indicates whether the video state has video reception enabled. |
| ` static boolean` | ` https://developer.android.com/reference/android/telecom/VideoProfile#isTransmissionEnabled(int)(int videoState) ` Indicates whether the video state has video transmission enabled. |
| ` static boolean` | ` https://developer.android.com/reference/android/telecom/VideoProfile#isVideo(int)(int videoState) ` Indicates whether video transmission or reception is enabled for a video state. |
| ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/telecom/VideoProfile#toString()() ` Returns a string representation of the object. |
| ` static https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/telecom/VideoProfile#videoStateToString(int)(int videoState) ` Generates a string representation of a video state. |
| ` void` | ` https://developer.android.com/reference/android/telecom/VideoProfile#writeToParcel(android.os.Parcel,%20int)(https://developer.android.com/reference/android/os/Parcel dest, int flags) ` Flatten this object in to a Parcel. |

### Inherited methods

From class ` https://developer.android.com/reference/java/lang/Object ` ` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/lang/Object#clone()() `

Creates and returns a copy of this object.
` boolean` ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Indicates whether some other object is "equal to" this one.
` void` ` https://developer.android.com/reference/java/lang/Object#finalize()() `

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
` final https://developer.android.com/reference/java/lang/Class<?>` ` https://developer.android.com/reference/java/lang/Object#getClass()() `

Returns the runtime class of this `Object`.
` int` ` https://developer.android.com/reference/java/lang/Object#hashCode()() `

Returns a hash code value for the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#notify()() `

Wakes up a single thread that is waiting on this object's monitor.
` final void` ` https://developer.android.com/reference/java/lang/Object#notifyAll()() `

Wakes up all threads that are waiting on this object's monitor.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Object#toString()() `

Returns a string representation of the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait()() `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*.
From interface ` https://developer.android.com/reference/android/os/Parcelable ` ` abstract int` ` https://developer.android.com/reference/android/os/Parcelable#describeContents()() `

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.
` abstract void` ` https://developer.android.com/reference/android/os/Parcelable#writeToParcel(android.os.Parcel,%20int)(https://developer.android.com/reference/android/os/Parcel dest, int flags) `

Flatten this object in to a Parcel.

## Constants

### QUALITY_DEFAULT

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

```
public static final int QUALITY_DEFAULT
```

Use default video quality.

<br />

Constant Value: 4 (0x00000004)

### QUALITY_HIGH

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

```
public static final int QUALITY_HIGH
```

"High" video quality.

<br />

Constant Value: 1 (0x00000001)

### QUALITY_LOW

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

```
public static final int QUALITY_LOW
```

"Low" video quality.

<br />

Constant Value: 3 (0x00000003)

### QUALITY_MEDIUM

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

```
public static final int QUALITY_MEDIUM
```

"Medium" video quality.

<br />

Constant Value: 2 (0x00000002)

### STATE_AUDIO_ONLY

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

```
public static final int STATE_AUDIO_ONLY
```

Used when answering or dialing a call to indicate that the call does not have a video component.

Should **not** be used in comparison checks to determine if a video state represents an audio-only call.

The following, for example, is not the correct way to check if a call is audio-only:

    // This is the incorrect way to check for an audio-only call.
    if (videoState == VideoProfile.STATE_AUDIO_ONLY) {
         // Handle audio-only call.
    }

Instead, use the `https://developer.android.com/reference/android/telecom/VideoProfile#isAudioOnly(int)` helper function to check if a video state represents an audio-only call:

    // This is the correct way to check for an audio-only call.
    if (VideoProfile.isAudioOnly(videoState)) {
         // Handle audio-only call.
    }

<br />

<br />

Constant Value: 0 (0x00000000)

### STATE_BIDIRECTIONAL

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

```
public static final int STATE_BIDIRECTIONAL
```

Video signal is bi-directional.

<br />

Constant Value: 3 (0x00000003)

### STATE_PAUSED

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

```
public static final int STATE_PAUSED
```

Video is paused.

<br />

Constant Value: 4 (0x00000004)

### STATE_RX_ENABLED

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

```
public static final int STATE_RX_ENABLED
```

Video reception is enabled.

<br />

Constant Value: 2 (0x00000002)

### STATE_TX_ENABLED

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

```
public static final int STATE_TX_ENABLED
```

Video transmission is enabled.

<br />

Constant Value: 1 (0x00000001)

## Fields

### CREATOR

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

```
public static final Creator<VideoProfile> CREATOR
```

Responsible for creating VideoProfile objects from deserialized Parcels.

<br />

## Public constructors

### VideoProfile

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

```
public VideoProfile (int videoState)
```

Creates an instance of the VideoProfile

<br />

| Parameters ||
|---|---|
| `videoState` | `int`: The video state. Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_AUDIO_ONLY` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_TX_ENABLED` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_RX_ENABLED` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_BIDIRECTIONAL` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_PAUSED` |

### VideoProfile

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

```
public VideoProfile (int videoState, 
                int quality)
```

Creates an instance of the VideoProfile

<br />

| Parameters ||
|---|---|
| `videoState` | `int`: The video state. Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_AUDIO_ONLY` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_TX_ENABLED` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_RX_ENABLED` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_BIDIRECTIONAL` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_PAUSED` |
| `quality` | `int`: The video quality. Value is one of the following: - `https://developer.android.com/reference/android/telecom/VideoProfile#QUALITY_HIGH` - `https://developer.android.com/reference/android/telecom/VideoProfile#QUALITY_MEDIUM` - `https://developer.android.com/reference/android/telecom/VideoProfile#QUALITY_LOW` - `https://developer.android.com/reference/android/telecom/VideoProfile#QUALITY_DEFAULT` |

## Public methods

### describeContents

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

```
public int describeContents ()
```

Describe the kinds of special objects contained in this Parcelable's marshalled representation.

<br />

| Returns ||
|---|---|
| `int` | a bitmask indicating the set of special object types marshalled by the Parcelable. <br /> |

### getQuality

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

```
public int getQuality ()
```

The desired video quality for the call. Valid values: `https://developer.android.com/reference/android/telecom/VideoProfile#QUALITY_HIGH`, `https://developer.android.com/reference/android/telecom/VideoProfile#QUALITY_MEDIUM`, `https://developer.android.com/reference/android/telecom/VideoProfile#QUALITY_LOW`, `https://developer.android.com/reference/android/telecom/VideoProfile#QUALITY_DEFAULT`.

<br />

| Returns ||
|---|---|
| `int` | Value is one of the following: - `https://developer.android.com/reference/android/telecom/VideoProfile#QUALITY_HIGH` - `https://developer.android.com/reference/android/telecom/VideoProfile#QUALITY_MEDIUM` - `https://developer.android.com/reference/android/telecom/VideoProfile#QUALITY_LOW` - `https://developer.android.com/reference/android/telecom/VideoProfile#QUALITY_DEFAULT` |

### getVideoState

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

```
public int getVideoState ()
```

The video state of the call. Valid values: `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_AUDIO_ONLY`, `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_BIDIRECTIONAL`, `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_TX_ENABLED`, `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_RX_ENABLED`, `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_PAUSED`.

<br />

| Returns ||
|---|---|
| `int` | Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_AUDIO_ONLY` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_TX_ENABLED` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_RX_ENABLED` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_BIDIRECTIONAL` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_PAUSED` |

### isAudioOnly

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

```
public static boolean isAudioOnly (int videoState)
```

Indicates whether the video state is audio only.

Note: Considers only whether either both the `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_RX_ENABLED` or `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_TX_ENABLED` bits are off, but not `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_PAUSED`.

<br />

| Parameters ||
|---|---|
| `videoState` | `int`: The video state. Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_AUDIO_ONLY` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_TX_ENABLED` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_RX_ENABLED` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_BIDIRECTIONAL` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_PAUSED` |

| Returns ||
|---|---|
| `boolean` | `True` if the video state is audio only, `false` otherwise. <br /> |

### isBidirectional

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

```
public static boolean isBidirectional (int videoState)
```

Indicates whether the video state is bi-directional.

<br />

| Parameters ||
|---|---|
| `videoState` | `int`: The video state. Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_AUDIO_ONLY` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_TX_ENABLED` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_RX_ENABLED` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_BIDIRECTIONAL` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_PAUSED` |

| Returns ||
|---|---|
| `boolean` | `True` if the video is bi-directional, `false` otherwise. <br /> |

### isPaused

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

```
public static boolean isPaused (int videoState)
```

Indicates whether the video state is paused.

<br />

| Parameters ||
|---|---|
| `videoState` | `int`: The video state. Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_AUDIO_ONLY` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_TX_ENABLED` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_RX_ENABLED` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_BIDIRECTIONAL` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_PAUSED` |

| Returns ||
|---|---|
| `boolean` | `True` if the video is paused, `false` otherwise. <br /> |

### isReceptionEnabled

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

```
public static boolean isReceptionEnabled (int videoState)
```

Indicates whether the video state has video reception enabled.

<br />

| Parameters ||
|---|---|
| `videoState` | `int`: The video state. Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_AUDIO_ONLY` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_TX_ENABLED` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_RX_ENABLED` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_BIDIRECTIONAL` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_PAUSED` |

| Returns ||
|---|---|
| `boolean` | `True` if video reception is enabled, `false` otherwise. <br /> |

### isTransmissionEnabled

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

```
public static boolean isTransmissionEnabled (int videoState)
```

Indicates whether the video state has video transmission enabled.

<br />

| Parameters ||
|---|---|
| `videoState` | `int`: The video state. Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_AUDIO_ONLY` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_TX_ENABLED` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_RX_ENABLED` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_BIDIRECTIONAL` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_PAUSED` |

| Returns ||
|---|---|
| `boolean` | `True` if video transmission is enabled, `false` otherwise. <br /> |

### isVideo

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

```
public static boolean isVideo (int videoState)
```

Indicates whether video transmission or reception is enabled for a video state.

<br />

| Parameters ||
|---|---|
| `videoState` | `int`: The video state. Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_AUDIO_ONLY` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_TX_ENABLED` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_RX_ENABLED` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_BIDIRECTIONAL` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_PAUSED` |

| Returns ||
|---|---|
| `boolean` | `True` if video transmission or reception is enabled, `false` otherwise. <br /> |

### toString

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

```
public String toString ()
```

Returns a string representation of the object.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | a string representation of the object. <br /> |

### videoStateToString

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

```
public static String videoStateToString (int videoState)
```

Generates a string representation of a video state.

<br />

| Parameters ||
|---|---|
| `videoState` | `int`: The video state. Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_AUDIO_ONLY` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_TX_ENABLED` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_RX_ENABLED` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_BIDIRECTIONAL` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_PAUSED` |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | String representation of the video state. <br /> |

### writeToParcel

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

```
public void writeToParcel (Parcel dest, 
                int flags)
```

Flatten this object in to a Parcel.

<br />

| Parameters ||
|---|---|
| `dest` | `Parcel`: The Parcel in which the object should be written. <br /> |
| `flags` | `int`: Additional flags about how the object should be written. May be 0 or `https://developer.android.com/reference/android/os/Parcelable#PARCELABLE_WRITE_RETURN_VALUE`. <br /> |