If device implementations include a microphone, they:
android.hardware.microphone
feature constant.If device implementations omit a microphone, they:
android.hardware.microphone
feature constant.If device implementations include a speaker or an audio/multimedia output port for an audio output peripheral such as a 4 conductor 3.5mm audio jack or USB host mode port using USB audio class, they:
android.hardware.audio.output
feature constant.If device implementations do not include a speaker or audio output port, they:
android.hardware.audio.output
feature.For the purposes of this section, an “output port” is a physical interface such as a 3.5mm audio jack, HDMI, or USB host mode port with USB audio class. Support for audio output over radio-based protocols such as Bluetooth, WiFi, or cellular network does not qualify as including an “output port”.
In order to be compatible with the headsets and other audio accessories using the 3.5mm audio plug across the Android ecosystem, if device implementations include one or more analog audio ports, they:
If device implementations have a 4 conductor 3.5mm audio jack, they:
KEYCODE_HEADSETHOOK
KEYCODE_VOLUME_UP
KEYCODE_VOLUME_DOWN
ACTION_HEADSET_PLUG
upon a plug insert, but only after all contacts on plug are touching their relevant segments on the jack.KEYCODE_VOICE_ASSIST
If device implementations have a 4 conductor 3.5mm audio jack and support a microphone, and broadcast the android.intent.action.HEADSET_PLUG
with the extra value microphone set as 1, they:
In order to be compatible with the headsets and other audio accessories using USB-C connectors and implementing (USB audio class) across the Android ecosystem as defined in Android USB headset specification.
See Section 2.2.1 for device-specific requirements.
Near-Ultrasound audio is the 18.5 kHz to 20 kHz band.
Device implementations:
If PROPERTY_SUPPORT_MIC_NEAR_ULTRASOUND
is “true”, the following requirements MUST be met by the VOICE_RECOGNITION
and UNPROCESSED
audio sources:
If PROPERTY_SUPPORT_SPEAKER_NEAR_ULTRASOUND
is “true”:
Device implementations:
The test requires an [audio loopback dongle] (https://source.android.com/devices/audio/latency/loopback), used directly in a 3.5mm jack, and/or in combination with a USB-C to 3.5mm adapter. All audio output ports SHOULD be tested.
OboeTester currently supports AAudio paths, so the following combinations SHOULD be tested for glitches using AAudio:
A reliable stream SHOULD meet the following criteria for Signal to Noise Ratio (SNR) and Total Harmonic Distortion (THD) for 2000 Hz sine.