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

# CallAudioState

*** ** * ** ***

` public final class CallAudioState `   
` 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.CallAudioState |

<br />

*** ** * ** ***

Encapsulates the telecom audio state, including the current audio routing, supported audio routing and mute.

## Summary

| ### Constants ||
|---|---|
| `int` | `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_BLUETOOTH` Direct the audio stream through Bluetooth. |
| `int` | `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_EARPIECE` Direct the audio stream through the device's earpiece. |
| `int` | `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_SPEAKER` Direct the audio stream through the device's speakerphone. |
| `int` | `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_STREAMING` Direct the audio stream through another device. |
| `int` | `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_WIRED_HEADSET` Direct the audio stream through a wired headset. |
| `int` | `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_WIRED_OR_EARPIECE` Direct the audio stream through the device's earpiece or wired headset if one is connected. |

### 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/CallAudioState>` | `https://developer.android.com/reference/android/telecom/CallAudioState#CREATOR` Responsible for creating AudioState objects for deserialized Parcels. |

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/telecom/CallAudioState#CallAudioState(boolean,%20int,%20int)(boolean muted, int route, int supportedRouteMask) ` Constructor for a `https://developer.android.com/reference/android/telecom/CallAudioState` object. |

| ### Public methods ||
|---|---|
| ` static https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/telecom/CallAudioState#audioRouteToString(int)(int route) ` Converts the provided audio route into a human readable string representation. |
| ` int` | ` https://developer.android.com/reference/android/telecom/CallAudioState#describeContents()() ` Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. |
| ` boolean` | ` https://developer.android.com/reference/android/telecom/CallAudioState#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) ` Indicates whether some other object is "equal to" this one. |
| ` https://developer.android.com/reference/android/bluetooth/BluetoothDevice` | ` https://developer.android.com/reference/android/telecom/CallAudioState#getActiveBluetoothDevice()() ` |
| ` int` | ` https://developer.android.com/reference/android/telecom/CallAudioState#getRoute()() ` |
| ` https://developer.android.com/reference/java/util/Collection<https://developer.android.com/reference/android/bluetooth/BluetoothDevice>` | ` https://developer.android.com/reference/android/telecom/CallAudioState#getSupportedBluetoothDevices()() ` |
| ` int` | ` https://developer.android.com/reference/android/telecom/CallAudioState#getSupportedRouteMask()() ` |
| ` boolean` | ` https://developer.android.com/reference/android/telecom/CallAudioState#isMuted()() ` |
| ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/telecom/CallAudioState#toString()() ` Returns a string representation of the object. |
| ` void` | ` https://developer.android.com/reference/android/telecom/CallAudioState#writeToParcel(android.os.Parcel,%20int)(https://developer.android.com/reference/android/os/Parcel destination, int flags) ` Writes AudioState object into a serializeable 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

### ROUTE_BLUETOOTH

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

```
public static final int ROUTE_BLUETOOTH
```

Direct the audio stream through Bluetooth.

<br />

Constant Value: 2 (0x00000002)

### ROUTE_EARPIECE

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

```
public static final int ROUTE_EARPIECE
```

Direct the audio stream through the device's earpiece.

<br />

Constant Value: 1 (0x00000001)

### ROUTE_SPEAKER

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

```
public static final int ROUTE_SPEAKER
```

Direct the audio stream through the device's speakerphone.

<br />

Constant Value: 8 (0x00000008)

### ROUTE_STREAMING

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

```
public static final int ROUTE_STREAMING
```

Direct the audio stream through another device.

<br />

Constant Value: 16 (0x00000010)

### ROUTE_WIRED_HEADSET

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

```
public static final int ROUTE_WIRED_HEADSET
```

Direct the audio stream through a wired headset.

<br />

Constant Value: 4 (0x00000004)

### ROUTE_WIRED_OR_EARPIECE

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

```
public static final int ROUTE_WIRED_OR_EARPIECE
```

Direct the audio stream through the device's earpiece or wired headset if one is connected.

<br />

Constant Value: 5 (0x00000005)

## Fields

### CREATOR

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

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

Responsible for creating AudioState objects for deserialized Parcels.

<br />

## Public constructors

### CallAudioState

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

```
public CallAudioState (boolean muted, 
                int route, 
                int supportedRouteMask)
```

Constructor for a `https://developer.android.com/reference/android/telecom/CallAudioState` object.

<br />

| Parameters ||
|---|---|
| `muted` | `boolean`: `true` if the call is muted, `false` otherwise. <br /> |
| `route` | `int`: The current audio route being used. Allowed values: `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_EARPIECE` `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_BLUETOOTH` `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_WIRED_HEADSET` `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_SPEAKER` Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_EARPIECE` - `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_BLUETOOTH` - `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_WIRED_HEADSET` - `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_SPEAKER` |
| `supportedRouteMask` | `int`: Bit mask of all routes supported by this call. This should be a bitwise combination of the following values: `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_EARPIECE` `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_BLUETOOTH` `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_WIRED_HEADSET` `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_SPEAKER` Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_EARPIECE` - `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_BLUETOOTH` - `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_WIRED_HEADSET` - `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_SPEAKER` |

## Public methods

### audioRouteToString

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

```
public static String audioRouteToString (int route)
```

Converts the provided audio route into a human readable string representation.

<br />

| Parameters ||
|---|---|
| `route` | `int`: to convert into a string. <br /> |

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

### 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 instance's marshaled representation. For example, if the object will include a file descriptor in the output of `https://developer.android.com/reference/android/os/Parcelable#writeToParcel(android.os.Parcel,%20int)`, the return value of this method must include the `https://developer.android.com/reference/android/os/Parcelable#CONTENTS_FILE_DESCRIPTOR` bit.

<br />

| Returns ||
|---|---|
| `int` | a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either `0` or - `https://developer.android.com/reference/android/os/Parcelable#CONTENTS_FILE_DESCRIPTOR` |

### equals

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

```
public boolean equals (Object obj)
```

Indicates whether some other object is "equal to" this one.

The `equals` method implements an equivalence relation on non-null object references:

- It is *reflexive*: for any non-null reference value `x`, `x.equals(x)` should return `true`.
- It is *symmetric*: for any non-null reference values `x` and `y`, `x.equals(y)` should return `true` if and only if `y.equals(x)` returns `true`.
- It is *transitive*: for any non-null reference values `x`, `y`, and `z`, if `x.equals(y)` returns `true` and `y.equals(z)` returns `true`, then `x.equals(z)` should return `true`.
- It is *consistent*: for any non-null reference values `x` and `y`, multiple invocations of `x.equals(y)` consistently return `true` or consistently return `false`, provided no information used in `equals` comparisons on the objects is modified.
- For any non-null reference value `x`, `x.equals(null)` should return `false`.

An equivalence relation partitions the elements it operates on into *equivalence classes*; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.

<br />

| Parameters ||
|---|---|
| `obj` | `Object`: the reference object with which to compare. <br /> |

| Returns ||
|---|---|
| `boolean` | `true` if this object is the same as the obj argument; `false` otherwise. <br /> |

### getActiveBluetoothDevice

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

```
public BluetoothDevice getActiveBluetoothDevice ()
```

<br />

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/bluetooth/BluetoothDevice` | The `https://developer.android.com/reference/android/bluetooth/BluetoothDevice` through which audio is being routed. Will not be `null` if `https://developer.android.com/reference/android/telecom/CallAudioState#getRoute()` returns `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_BLUETOOTH`. <br /> |

### getRoute

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

```
public int getRoute ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | The current audio route being used. Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_EARPIECE` - `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_BLUETOOTH` - `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_WIRED_HEADSET` - `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_SPEAKER` |

### getSupportedBluetoothDevices

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

```
public Collection<BluetoothDevice> getSupportedBluetoothDevices ()
```

<br />

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/Collection<https://developer.android.com/reference/android/bluetooth/BluetoothDevice>` | `https://developer.android.com/reference/java/util/List` of `https://developer.android.com/reference/android/bluetooth/BluetoothDevice`s that can be used for this call. <br /> |

### getSupportedRouteMask

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

```
public int getSupportedRouteMask ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | Bit mask of all routes supported by this call. Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_EARPIECE` - `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_BLUETOOTH` - `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_WIRED_HEADSET` - `https://developer.android.com/reference/android/telecom/CallAudioState#ROUTE_SPEAKER` |

### isMuted

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

```
public boolean isMuted ()
```

<br />

<br />

| Returns ||
|---|---|
| `boolean` | `true` if the call is muted, `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 /> |

### writeToParcel

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

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

Writes AudioState object into a serializeable Parcel.

<br />

| Parameters ||
|---|---|
| `destination` | `Parcel`: The Parcel in which the object should be written. This value cannot be `null`. <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`. Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/os/Parcelable#PARCELABLE_WRITE_RETURN_VALUE` |