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.
18.104.22.168. 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
210-290 Ohm : KEYCODE_VOLUME_UP
360-680 Ohm : KEYCODE_VOLUME_DOWN
- 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:
110-180 Ohm: KEYCODE_VOICE_ASSIST
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?