htc 10 hi-res headphones earbuds aa (12 of 12)

Google gives Android away to OEMs for free. But gaining access to Google’s suite of apps – especially the Google Play Store – comes at a cost. That cost is met by satisfying the demands of the Android Compatibility Definition Document (CDD), the latest of which has just been released for Android 7.0 Nougat, a full two and a half months after Nougat was released.

The CDD has a lot of interesting tidbits in it, but some are likely to be of greater concern than others. For example, Google has hinted that it may start forcing OEMs to support fast charging via USB Power Delivery (which the Pixel phones use) in future Android versions. In many ways, this is a good thing: universal fast charger compatibility across all Android devices. So far, so good.

The same goes for audio standards and in-line headphone controls. The CDD has a couple of sections on audio, the first of which dictates that devices claiming “professional audio” playback must satisfy the standards laid out in the OpenSL ES for Android reference document. Again, a little consistency never hurt anyone.

Google is clearly trying to minimize the amount of arbitrary differentiation in audio standards on Android Nougat devices.

Next up are analog audio ports, which, as you know, are slowly becoming an endangered species. According to the CDD, if a device has a 3.5 mm audio jack, the system must support three basic in-line headphone controls: volume up, volume down and headsethook (which allows you to answer and hang up calls).

Just to be clear, the CDD demands that “if a device implementation includes one or more analog audio ports, at least one of the audio port(s) SHOULD be a 4 conductor 3.5mm audio jack.” This means including a 3.5 mm port is entirely optional, but if a device does have a 3.5 mm port, it must meet Google’s parameters for in-line controls. Analog Audio Ports

If a device implementation has a 4 conductor 3.5mm audio jack, it:

  • MUST support the detection and mapping to the keycodes for the following 3 ranges of equivalent impedance between the microphone and ground conductors on the audio plug:

70 ohm or less : KEYCODE_HEADSETHOOK



  • STRONGLY RECOMMENDED to detect and map to the keycode for the following range of equivalent impedance between the microphone and ground conductors on the audio plug:


It must be said that a lot of OEMs already support in-line headphone controls and volume up, down and pickup/hang up are pretty standard. But by laying out the specific impedance values for each setting, Google is enforcing a degree of consistency on what has previously been left up to OEMs. The result of this has been headphones whose in-line controls don’t work on all phones.

Standardized headphone controls, combined with the prospect of uniform fast charger adaptor compatibility in future, are definitely steps in the right direction. While Android is and should continue to be a free and open platform, reducing the amount of arbitrary differentiation on Android devices makes a lot of sense. And Google is the only one that can make it happen.

What other compatibility issues would you like to see addressed in Android?

Read comments