How to detect if the HDMI port on an Android device has HDCP enabled?

19.3k views Asked by At

Can't find anything definitive on Android Doc and Google.

If there is API to detect this, what is it and what is the API to enable/disable HDCP on the HDMI output?

If there is NO API to detect this, is there a device can be used to check the HDCP flag on HDMI port?

On some android devices (most notably Samsung devices), the HDMI port always has HDCP enabled. But how about other manufactures devices? Is HDCP mandatory on Google certified device? If it's not mandatory, how do major content providers's Android apps (from Big cable company teleco) prevent video output to non-HDCP protected HDMI port?

4

There are 4 answers

3
Marcos Zolnowski On BEST ANSWER
0
Josh Keighley On

More often than not if it has a HDMI port HDCP is going to be enabled because it wouldn't work without it!

0
amohr On

Motorola had an API: http://web.archive.org/web/20120213100531/http://developer.motorola.com/docstools/library/motorola-hdmi-status-api/

We do still use it for older devices. I also read that someone was having some success still using this on new devices through adb so if someone knows if this still works on newer Motorola devices please share.

Also I know this isn't what you were asking for however we're using this for HDMI status (/sys/devices/virtual/switch/hdmi/state), hopefully they expand it in the future for HDCP support as well...so you may want to watch that space as well.

0
Joe Steele On

This is an older thread - but since I am working on this stuff again I thought I would update.

As of API 17 (Android 4.2+), you can get a decent proxy for HDCP information from the standard Android SDK.

If you want to ensure that a display is "secure" you can call setSecure(true) on the application Surface. Then for good measure you can enumerate the available Displays and verify that FLAG_SECURE is set for each one. This will block DDMS and at least hint to the display driver that the output should have HDCP turned on. No guarantees though and your mileage may vary.

On further note -- the path Alex noted above may have changed on newer devices (Android 5.1+). But since this is dependent on the OEM, expect this may vary on different devices. :-(