HDMI-CEC标准允许多媒体消费产品之间沟通和交换信息,HDMI-CEC支持许多功能,比如遥控器直通,系统音频控制,一键播放等等。Android通过HdmiControlService这个系统服务来管理所有的HDMI-CEC设备,下面这张图展示了HDMI控制服务的架构:
下面是Android HDMI-CEC实现的关键部分:
管理类HdmiControlManager向有权限的应用提供API,系统服务比如TV Input Manager服务和音频服务可以直接使用这个类。
这个服务被设计成允许管理多种类型的逻辑设备。
HDMI-CEC通过一个硬件抽象层(HAL)与硬件连接,这样简化了设备之间协议和信号机制差异的处理。设备厂商可以利用HAL的定义来实现HAL层。
Android HDMI-CEC相关的代码位于frameworks/base/services/core/java/com/android/server/hdmi目录下:
ActiveSourceHandler.java
Constants.java
DelayedMessageBuffer.java
DeviceDiscoveryAction.java
DevicePowerStatusAction.java
DeviceSelectAction.java
HdmiAnnotations.java
HdmiCecController.java