官方文档
https://source.android.google.cn/devices/tv/hdmi-cec
画重点
高清多媒体接口消费类电子产品控制 (HDMI-CEC) 标准允许多媒体消费类商品相互通信和交换信息。HDMI-CEC 支持很多功能(如遥控直通和系统音频控制),但最受欢迎的功能之一是单键播放。单键播放功能可以让媒体来源设备打开电视并自动切换其输入端口,因此您无需寻找电视遥控器,即可从 Chromecast 切换到蓝光播放器。
大多数制造商都已采用 HDMI-CEC,因此它们的设备能够与其他公司的设备配合使用。各个制造商实现 HDMI-CEC 标准的方式不同,因此设备之间并不总是可以实现顺畅协作,而且支持的功能也因设备而异。由于存在这种差异,消费者并不能放心地假定两个声称支持 CEC 的产品是完全兼容的。
对于应用层来说需要明白的是这个API为系统api,并且每个方案厂家均会不同,所以需要基于具体的系统源码进行开发,经过摸索发现RK3399方案使用以下代码可行
//基于RK3399 IBinder playBinder = ServiceManager.getService("hdmi_control"); IHdmiControlService service=IHdmiControlService.Stub.asInterface(playBinder); int code = 0x36;//0x36 tv休眠,0x36 - 41 tv唤醒 service.sendControlCommand(service.getLocalAddress(HdmiDeviceInfo.DEVICE_PLAYBACK), 0, code, new byte[]{});
HDMI CEC相关指令需要查阅相关文档
As manual said 0F address is for enableing cec, so after writing 00 to 0F i was able to see new address in i-2
Thank you very much. Have a nice day