USB headset: Accessory specification

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.

Functional overview

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

Control functions

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)
B Optional Vol+
C Optional Vol-
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 following pattern:
    • 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).

Software mapping

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.

Function Mappings
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)).

Output level

The maximum sound pressure level shall comply to any regulatory requirement in the country of destination.

Mechanical

Accessory manufacturers must follow the requirements for USB connectors as specified by USB.org.