Android HDMI-CEC检查电视电源状态

时间:2016-10-03 09:17:36

标签: android android-tv hdmi

我检查了Android HDMI CEC

使用以下代码查找HDMI电缆是否已连接:

     private boolean isHdmiCableAttach() {

        // The file '/sys/devices/virtual/switch/hdmi/state' holds an int -- if it's 1 then an HDMI device is connected.
        // An alternative file to check is '/sys/class/switch/hdmi/state' which exists instead on certain devices.
        File switchFile = new File("/sys/devices/virtual/switch/hdmi/state");

        if (!switchFile.exists()) {
            switchFile = new File("/sys/class/switch/hdmi/state");
        }
        try {
            Scanner switchFileScanner = new Scanner(switchFile);
            int switchValue = switchFileScanner.nextInt();
            switchFileScanner.close();
            return switchValue > 0;
        } catch (Exception e) {
            return false;
        }

    }

现在我想使用HDMI-CEC

找出电视电源的开/关

我找不到网站的任何帮助我试图从LibCEC获得帮助,但如何在应用中集成LibCEC

任何人都可以帮助我获得电源状态或设置LibCEC

1 个答案:

答案 0 :(得分:0)

实际上,Android TV已经具备此功能,其中它为第三方电视输入提供开发人员API。如TV App中所述,

  

Android TV为第三方电视输入提供开发人员API,使已安装的应用能够将软件频道提供给直播电视体验。为确保兼容的Android设备实施,系统电视应用程序在向用户显示第三方电视输入和频道方面负有一些责任。

TV integration guidelines如下所列:

  

由于每个国家/地区都有广播特定要求(MHEG,图文电视,HbbTV等),因此制造商应为广播应用提供自己的解决方案,例如:

     
      
  • MHEG:原生堆栈
  •   
  • 图文电视:原生堆栈
  •   
  • HbbTV:Opera浏览器修改webkit
  •   
     

在Android L版本中,Android TV期望设备制造商将系统集成商或Android解决方案用于区域电视堆栈,将表面传递到电视软件堆栈,或传递必要的密钥代码以与传统堆栈进行交互。

     

以下是广播应用和电视应用互动的方式:

     
      
  1. 电视应用程序处于焦点,接收所有密钥。
  2.   
  3. 电视应用程序将密钥(例如红色按钮)传递给电视输入设备。
  4.   
  5. 电视输入设备内部集成了传统电视堆栈。
  6.   
  7. 接收到激活密钥代码(例如红色按钮)后,电视输入设备将激活广播应用程序。
  8.   
  9. 广播应用程序将焦点放在电视应用程序中并处理用户操作。
  10.   

有关更详细的信息,请尝试浏览TV Input Framework,您还可以查看Android电视上的CEC集成,如documentation所示。