AudioDeviceInfo

public final class AudioDeviceInfo
extends Object

java.lang.Object
   ↳ android.media.AudioDeviceInfo


Provides information about an audio device.

Summary

Constants

int TYPE_AUX_LINE

A device type describing the auxiliary line-level connectors.

int TYPE_BLE_BROADCAST

A device type describing a Bluetooth Low Energy (BLE) broadcast group.

int TYPE_BLE_HEADSET

A device type describing a Bluetooth Low Energy (BLE) audio headset or headphones.

int TYPE_BLE_SPEAKER

A device type describing a Bluetooth Low Energy (BLE) audio speaker.

int TYPE_BLUETOOTH_A2DP

A device type describing a Bluetooth device supporting the A2DP profile.

int TYPE_BLUETOOTH_SCO

A device type describing a Bluetooth device typically used for telephony.

int TYPE_BUILTIN_EARPIECE

A device type describing the attached earphone speaker.

int TYPE_BUILTIN_MIC

A device type describing the microphone(s) built in a device.

int TYPE_BUILTIN_SPEAKER

A device type describing the speaker system (i.e.

int TYPE_BUILTIN_SPEAKER_SAFE

A device type describing the speaker system (i.e.

int TYPE_BUS

A type-agnostic device used for communication with external audio systems

int TYPE_DOCK

A device type describing the audio device associated with a dock.

int TYPE_DOCK_ANALOG

A device type describing the audio device associated with a dock using an analog connection.

int TYPE_FM

A device type associated with the transmission of audio signals over FM.

int TYPE_FM_TUNER

A device type for accessing the audio content transmitted over FM.

int TYPE_HDMI

A device type describing an HDMI connection .

int TYPE_HDMI_ARC

A device type describing the Audio Return Channel of an HDMI connection.

int TYPE_HDMI_EARC

A device type describing the Enhanced Audio Return Channel of an HDMI connection.

int TYPE_HEARING_AID

A device type describing a Hearing Aid.

int TYPE_IP

A device type connected over IP.

int TYPE_LINE_ANALOG

A device type describing an analog line-level connection.

int TYPE_LINE_DIGITAL

A device type describing a digital line connection (e.g. SPDIF).

int TYPE_REMOTE_SUBMIX

A device type for rerouting audio within the Android framework between mixes and system applications.

int TYPE_TELEPHONY

A device type describing the transmission of audio signals over the telephony network.

int TYPE_TV_TUNER

A device type for accessing the audio content transmitted over the TV tuner system.

int TYPE_UNKNOWN

A device type associated with an unknown or uninitialized device.

int TYPE_USB_ACCESSORY

A device type describing a USB audio device in accessory mode.

int TYPE_USB_DEVICE

A device type describing a USB audio device.

int TYPE_USB_HEADSET

A device type describing a USB audio headset.

int TYPE_WIRED_HEADPHONES

A device type describing a pair of wired headphones.

int TYPE_WIRED_HEADSET

A device type describing a headset, which is the combination of a headphones and microphone.

Public methods

boolean equals(Object o)

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

String getAddress()
List<AudioDescriptor> getAudioDescriptors()
List<AudioProfile> getAudioProfiles()
int[] getChannelCounts()
int[] getChannelIndexMasks()
int[] getChannelMasks()
int[] getEncapsulationMetadataTypes()

Returns an array of supported encapsulation metadata types for the device.

int[] getEncapsulationModes()

Returns an array of supported encapsulation modes for the device.

int[] getEncodings()
int getId()
CharSequence getProductName()
int[] getSampleRates()
int getType()
int hashCode()

Returns a hash code value for the object.

boolean isSink()
boolean isSource()

Inherited methods

Constants

TYPE_AUX_LINE

Added in API level 23
public static final int TYPE_AUX_LINE

A device type describing the auxiliary line-level connectors.

Constant Value: 19 (0x00000013)

TYPE_BLE_BROADCAST

Added in API level 33
public static final int TYPE_BLE_BROADCAST

A device type describing a Bluetooth Low Energy (BLE) broadcast group.

Constant Value: 30 (0x0000001e)

TYPE_BLE_HEADSET

Added in API level 31
public static final int TYPE_BLE_HEADSET

A device type describing a Bluetooth Low Energy (BLE) audio headset or headphones. Headphones are grouped with headsets when the device is a sink: the features of headsets and headphones with regard to playback are the same.

Constant Value: 26 (0x0000001a)

TYPE_BLE_SPEAKER

Added in API level 31
public static final int TYPE_BLE_SPEAKER

A device type describing a Bluetooth Low Energy (BLE) audio speaker.

Constant Value: 27 (0x0000001b)

TYPE_BLUETOOTH_A2DP

Added in API level 23
public static final int TYPE_BLUETOOTH_A2DP

A device type describing a Bluetooth device supporting the A2DP profile.

Constant Value: 8 (0x00000008)

TYPE_BLUETOOTH_SCO

Added in API level 23
public static final int TYPE_BLUETOOTH_SCO

A device type describing a Bluetooth device typically used for telephony.

Constant Value: 7 (0x00000007)

TYPE_BUILTIN_EARPIECE

Added in API level 23
public static final int TYPE_BUILTIN_EARPIECE

A device type describing the attached earphone speaker.

Constant Value: 1 (0x00000001)

TYPE_BUILTIN_MIC

Added in API level 23
public static final int TYPE_BUILTIN_MIC

A device type describing the microphone(s) built in a device.

Constant Value: 15 (0x0000000f)

TYPE_BUILTIN_SPEAKER

Added in API level 23
public static final int TYPE_BUILTIN_SPEAKER

A device type describing the speaker system (i.e. a mono speaker or stereo speakers) built in a device.

Constant Value: 2 (0x00000002)

TYPE_BUILTIN_SPEAKER_SAFE

Added in API level 30
public static final int TYPE_BUILTIN_SPEAKER_SAFE

A device type describing the speaker system (i.e. a mono speaker or stereo speakers) built in a device, that is specifically tuned for outputting sounds like notifications and alarms (i.e. sounds the user couldn't necessarily anticipate).

Note that this physical audio device may be the same as TYPE_BUILTIN_SPEAKER but is driven differently to safely accommodate the different use case.

Constant Value: 24 (0x00000018)

TYPE_BUS

Added in API level 24
public static final int TYPE_BUS

A type-agnostic device used for communication with external audio systems

Constant Value: 21 (0x00000015)

TYPE_DOCK

Added in API level 23
public static final int TYPE_DOCK

A device type describing the audio device associated with a dock. Starting at API 34, this device type only represents digital docks, while docks with an analog connection are represented with TYPE_DOCK_ANALOG.

See also:

Constant Value: 13 (0x0000000d)

TYPE_DOCK_ANALOG

Added in API level 34
public static final int TYPE_DOCK_ANALOG

A device type describing the audio device associated with a dock using an analog connection.

Constant Value: 31 (0x0000001f)

TYPE_FM

Added in API level 23
public static final int TYPE_FM

A device type associated with the transmission of audio signals over FM.

Constant Value: 14 (0x0000000e)

TYPE_FM_TUNER

Added in API level 23
public static final int TYPE_FM_TUNER

A device type for accessing the audio content transmitted over FM.

Constant Value: 16 (0x00000010)

TYPE_HDMI

Added in API level 23
public static final int TYPE_HDMI

A device type describing an HDMI connection .

Constant Value: 9 (0x00000009)

TYPE_HDMI_ARC

Added in API level 23
public static final int TYPE_HDMI_ARC

A device type describing the Audio Return Channel of an HDMI connection.

Constant Value: 10 (0x0000000a)

TYPE_HDMI_EARC

Added in API level 31
public static final int TYPE_HDMI_EARC

A device type describing the Enhanced Audio Return Channel of an HDMI connection.

Constant Value: 29 (0x0000001d)

TYPE_HEARING_AID

Added in API level 28
public static final int TYPE_HEARING_AID

A device type describing a Hearing Aid.

Constant Value: 23 (0x00000017)

TYPE_IP

Added in API level 23
public static final int TYPE_IP

A device type connected over IP.

Constant Value: 20 (0x00000014)

TYPE_LINE_ANALOG

Added in API level 23
public static final int TYPE_LINE_ANALOG

A device type describing an analog line-level connection.

Constant Value: 5 (0x00000005)

TYPE_LINE_DIGITAL

Added in API level 23
public static final int TYPE_LINE_DIGITAL

A device type describing a digital line connection (e.g. SPDIF).

Constant Value: 6 (0x00000006)

TYPE_REMOTE_SUBMIX

Added in API level 31
public static final int TYPE_REMOTE_SUBMIX

A device type for rerouting audio within the Android framework between mixes and system applications. This type is for instance encountered when querying the output device of a track (with AudioTrack#getRoutedDevice() playing from a device in screen mirroring mode, where the audio is not heard on the device, but on the remote device.

Constant Value: 25 (0x00000019)

TYPE_TELEPHONY

Added in API level 23
public static final int TYPE_TELEPHONY

A device type describing the transmission of audio signals over the telephony network.

Constant Value: 18 (0x00000012)

TYPE_TV_TUNER

Added in API level 23
public static final int TYPE_TV_TUNER

A device type for accessing the audio content transmitted over the TV tuner system.

Constant Value: 17 (0x00000011)

TYPE_UNKNOWN

Added in API level 23
public static final int TYPE_UNKNOWN

A device type associated with an unknown or uninitialized device.

Constant Value: 0 (0x00000000)

TYPE_USB_ACCESSORY

Added in API level 23
public static final int TYPE_USB_ACCESSORY

A device type describing a USB audio device in accessory mode.

Constant Value: 12 (0x0000000c)

TYPE_USB_DEVICE

Added in API level 23
public static final int TYPE_USB_DEVICE

A device type describing a USB audio device.

Constant Value: 11 (0x0000000b)

TYPE_USB_HEADSET

Added in API level 26
public static final int TYPE_USB_HEADSET

A device type describing a USB audio headset.

Constant Value: 22 (0x00000016)

TYPE_WIRED_HEADPHONES

Added in API level 23
public static final int TYPE_WIRED_HEADPHONES

A device type describing a pair of wired headphones.

Constant Value: 4 (0x00000004)

TYPE_WIRED_HEADSET

Added in API level 23
public static final int TYPE_WIRED_HEADSET

A device type describing a headset, which is the combination of a headphones and microphone.

Constant Value: 3 (0x00000003)

Public methods

equals

Added in API level 23
public boolean equals (Object o)

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.

Parameters
o Object: the reference object with which to compare.

Returns
boolean true if this object is the same as the obj argument; false otherwise.

getAddress

Added in API level 28
public String getAddress ()

Returns
String The "address" string of the device. This generally contains device-specific parameters. This value cannot be null.

getAudioDescriptors

Added in API level 31
public List<AudioDescriptor> getAudioDescriptors ()

Returns
List<AudioDescriptor> A list of AudioDescriptor supported by the audio devices. This value cannot be null.

getAudioProfiles

Added in API level 31
public List<AudioProfile> getAudioProfiles ()

Returns
List<AudioProfile> A list of AudioProfile supported by the audio devices. This value cannot be null.

getChannelCounts

Added in API level 23
public int[] getChannelCounts ()

Returns
int[] An array of channel counts (1, 2, 4, ...) for which this audio device can be configured. Note: an empty array indicates that the device supports arbitrary channel counts. This value cannot be null.

getChannelIndexMasks

Added in API level 23
public int[] getChannelIndexMasks ()

Returns
int[] An array of channel index masks for which this audio device can be configured. This value cannot be null.

getChannelMasks

Added in API level 23
public int[] getChannelMasks ()

Returns
int[] An array of channel position masks (e.g. AudioFormat#CHANNEL_IN_STEREO, AudioFormat#CHANNEL_OUT_7POINT1) for which this audio device can be configured. This value cannot be null.

getEncapsulationMetadataTypes

Added in API level 30
public int[] getEncapsulationMetadataTypes ()

Returns an array of supported encapsulation metadata types for the device. The metadata type returned should be allowed for all encapsulation modes supported by the device. Some metadata types may apply only to certain compressed stream formats, the returned list is the union of subsets. The array can include any of AudioTrack#ENCAPSULATION_METADATA_TYPE_FRAMEWORK_TUNER, AudioTrack#ENCAPSULATION_METADATA_TYPE_DVB_AD_DESCRIPTOR.

Returns
int[] An array of supported encapsulation metadata types for the device. This may be an empty array if no metadata types are supported. This value cannot be null. Value is android.media.AudioTrack.ENCAPSULATION_METADATA_TYPE_NONE, AudioTrack.ENCAPSULATION_METADATA_TYPE_FRAMEWORK_TUNER, AudioTrack.ENCAPSULATION_METADATA_TYPE_DVB_AD_DESCRIPTOR, or AudioTrack.ENCAPSULATION_METADATA_TYPE_SUPPLEMENTARY_AUDIO_PLACEMENT

getEncapsulationModes

Added in API level 30
public int[] getEncapsulationModes ()

Returns an array of supported encapsulation modes for the device. The array can include any of the AudioTrack encapsulation modes, e.g. AudioTrack#ENCAPSULATION_MODE_ELEMENTARY_STREAM.

Returns
int[] An array of supported encapsulation modes for the device. This may be an empty array if no encapsulation modes are supported. This value cannot be null. Value is AudioTrack.ENCAPSULATION_MODE_NONE, or AudioTrack.ENCAPSULATION_MODE_ELEMENTARY_STREAM

getEncodings

Added in API level 23
public int[] getEncodings ()

Returns
int[] An array of audio encodings (e.g. AudioFormat#ENCODING_PCM_16BIT, AudioFormat#ENCODING_PCM_FLOAT) supported by the audio device. ENCODING_PCM_FLOAT indicates the device supports more than 16 bits of integer precision. As there is no AudioFormat constant specifically defined for 24-bit PCM, the value ENCODING_PCM_FLOAT indicates that AudioTrack or AudioRecord can preserve at least 24 bits of integer precision to that device. This value cannot be null.

getId

Added in API level 23
public int getId ()

Returns
int The internal device ID.

getProductName

Added in API level 23
public CharSequence getProductName ()

Returns
CharSequence The human-readable name of the audio device.

getSampleRates

Added in API level 23
public int[] getSampleRates ()

Returns
int[] An array of sample rates supported by the audio device. Note: an empty array indicates that the device supports arbitrary rates. This value cannot be null.

hashCode

Added in API level 23
public int hashCode ()

Returns a hash code value for the object. This method is supported for the benefit of hash tables such as those provided by HashMap.

The general contract of hashCode is:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
  • If two objects are equal according to the equals method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the equals method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.

Returns
int a hash code value for this object.

isSink

Added in API level 23
public boolean isSink ()

Returns
boolean true if the audio device is a sink for audio data (i.e. an output).

isSource

Added in API level 23
public boolean isSource ()

Returns
boolean true if the audio device is a source for audio data (e.e an input).