Google recently revised and released the Compatibility Definition Document, making it relatable to Android 7.0 Nougat. The CDD covers a wide range of different things for both software and hardware and covers various regulations, requirements, and guidelines for those two categories that Google lays out for manufacturers. As part of that document Google added in a section about USB Type-C charging standards, and mentioned that they may require future USB Type-C devices to support interoperability with standard USB Type-C chargers. While those requirements are not yet set in stone and Google could decide to leave things as they are currently, which is a “strong recommendation” to meet those standards, Google has set up a new requirement for something entirely different – support for the inline controls for headphones.
What Google is now saying with the new CDD is that any device which has a 3.5mm audio port that has 4 conductors, is required to support both detection and mapping for various keycodes. Those keycodes are listed as KEYCODE_HEADSETHOOK, KEYCODE_VOLUME-UP, AND KEYCODE_VOLUME-DOWN, which have impedance ranges of 70 Omh or less, 210-290 Ohm or less, and 360-680 Ohm or less respectively. What this is basically doing is setting it up so that manufacturers aren’t able to change up the action of these keycodes, and like the USB Type-C regulations they’re trying to put in place, they want things to be standardized.
Naturally, Google never required this support before so manufacturers were free to change things as they wanted and it seems as though some OEMs were certainly exercising the freedom that they had. Going forward, device manufacturers will have to follow these standard rules as they may end up hitting a snag when it comes to a device release should they choose to forego them, just as they would if Google made it a requirement to support standard USB Type-C chargers only to have the rule ignored by an OEM. More than likely this isn’t going to mean much for the consumer, especially those who never use inline controls on 3.5mm headsets. Nevertheless, it’s usually better for certain types of functions when there is a standard in place so things don’t work too differently from each other.