This documentation specifies some characteristics of USB headsets, so that they function uniformly across the Android ecosystem. Only headsets with digital USB audio interface are permitted. Purely analog headsets with mechanical adaptation to USB-C are not permitted, as per USB Type-C specification.
This documentation specifies the minimum requirements: accessory manufacturers are encouraged to add features while keeping these requirements in mind.
USB headsets can implement a variety of basic and advanced features. This specification only covers mandated basic features:
- Stereo output
- Optional, but recommended, microphone
- Function buttons for volume, playback, and call control
USB Audio Class terminal types
Headphones and headsets must report these USB Audio Class (UAC) terminal types:
- Headphones. Low impedance transducers, < 100 ohms, no microphone: 0x0302
- Headset. Low impedance transducers with microphone: 0x0402
Headsets can come with varying number of buttons to control specific functions, such as volume and play/pause.
|Control function||Accessory Support||Description|
|A||Required||Play/pause (short press), launch voice command (long press), next (double press)|
|D||Optional||Launch voice command|
Assign functions to buttons as follows:
- All one-button headsets must implement Function A.
- Headsets with multiple buttons must implement functions according to the
- 2 functions: A and D
- 3 functions: A, B, C
- 4 functions: A, B, C, D
Note: No key latching allowed. Each key press by the end user must generate the corresponding "down" and "up" key event, matching the end user action. In other words, the keys for functions A through D are never "latched" or implemented to be used as a toggle (where the "up" event only follows "down" on a second key press).
Compatible USB headsets are required to support the following software mappings for the headset buttons. Devices match these HID mappings with the appropriate Android keycode.
|A||HID usage page: 0x0C
HID usage: 0x0CD
|B||HID usage page: 0x0C
HID usage: 0x0E9
|C||HID usage page: 0x0C
HID usage: 0x0EA
|D||HID usage page: 0x0C
HID usage: 0x0CF
Key mappings should be declared within a HID application collection. For accessories without a microphone, use Headphone (Usage Page: Consumer (0x0C), Usage: Headphone (0x05)). For accesories with a microphone, use Headset (Usage Page: Telephony (0x0B), Usage: Headset (0x05)).
The maximum sound pressure level shall comply to any regulatory requirement in the country of destination.
Accessory manufacturers must follow the requirements for USB connectors as specified by USB.org.