标签: hdmi-cec

在Android应用中使用libCEC + USB加密狗

我的目标是从配备Pulse-Eight USB加密狗的Android机箱上运行的标准(即非系统)应用程序发送HDMI CEC命令.

按照这些说明,我成功地设法为Android 编译libcec并在框中以root身份执行它,使用以下命令:

echo <my-cec-command> | cec-client -s /dev/ttyACM0
Run Code Online (Sandbox Code Playgroud)

/dev/ttyACM0插入加密狗时系统在哪里创建设备文件.

但是,此文件的权限会阻止该命令由非root用户执行(因此无法从我的Android应用程序执行).

另一方面,应用程序实际上可以通过Android SDK 的USB Host API访问USB加密狗(前提是用户授予权限),甚至可以用UsbSerial库封装到USB串行控制器中.

但是我没有看到任何方法在Android的USB Host API和libcec/cec-client提供的连接之间架起桥梁.你有什么想法或建议吗?

android hdmi android-usb hdmi-cec

7
推荐指数
1
解决办法
702
查看次数

Android上的HDMI CEC

我一直面临着在这个安卓加密狗上访问HDMI CEC的问题.

我正试图打开电视并改变电视的输入源,但我无法做到.

Android API方法

我正在运行一个系统应用程序,我已经解决了

<uses-permission android:name="android.permission.HDMI_CEC" /> 
Run Code Online (Sandbox Code Playgroud)

在AndroidManifest.xml上.

我通过反射访问HDMI服务,因为我无法直接访问它,即使是系统应用程序.

public class HdmiHelper {

    public HdmiHelper(Context context) {
        init(context);
    }

    public void init(Context context) {

        try {

            //Interface Callback Proxy
            Class<?> hotplugEventListenerClass = Class.forName("android.hardware.hdmi.HdmiControlManager$HotplugEventListener");
            Class<?> vendorCommandListenerClass = Class.forName("android.hardware.hdmi.HdmiControlManager$VendorCommandListener");
            Class<?> oneTouchPlayCallbackClass = Class.forName("android.hardware.hdmi.HdmiPlaybackClient$OneTouchPlayCallback");
            Class<?> displayStatusCallbackClass = Class.forName("android.hardware.hdmi.HdmiPlaybackClient$DisplayStatusCallback");

            Object interfaceOneTouchPlaybackCallback = Proxy.newProxyInstance(oneTouchPlayCallbackClass.getClassLoader(),
                    new Class<?>[]{ oneTouchPlayCallbackClass } , new callbackProxyListener() );

            Object interfaceHotplugEventCallback = Proxy.newProxyInstance(hotplugEventListenerClass.getClassLoader(),
                    new Class<?>[]{ hotplugEventListenerClass } , new callbackProxyListener() );

            Object interfaceDisplayStatusCallbackClass = Proxy.newProxyInstance(displayStatusCallbackClass.getClassLoader(),
                    new Class<?>[]{ displayStatusCallbackClass …
Run Code Online (Sandbox Code Playgroud)

android dongle hdmi-cec

5
推荐指数
1
解决办法
3210
查看次数

检测通过 HDMI 连接到 Android 设备的电视电源状态的变化

我正在构建一个 Android 媒体播放器应用程序,打算用于在通过 HDMI 电缆连接时在电视上播放媒体(视频、图片等)。

我想让媒体播放器应用程序在电视电源状态关闭时暂停,并希望在电视打开时播放。

当我的 Android 设备通过 HDMI 连接到电视时,如何在 Android 应用程序中检测电视的电源状态?

电视和 Android 设备均支持 HDMI-CEC。该设备是 ODROID C2。我在 KODI Android 应用程序上看到了此功能,该应用程序具有在 HDMI-CEC 状态关闭时暂停视频的功能,我也希望在我的应用程序中实现此功能。

任何帮助表示赞赏。提前致谢!

编辑:下面的进展

我尝试从此文件中读取 HDMI 连接的状态/sys/devices/virtual/switch/hdmi/stateint 1但是,无论所连接的屏幕/电视的电源状态是打开还是关闭,该文件都会保留。

第二次进度更新

我还在研究这个。不会放弃,一旦完成,我一定会在这里发布答案。

android hdmi-cec

5
推荐指数
1
解决办法
4098
查看次数

标签 统计

android ×3

hdmi-cec ×3

android-usb ×1

dongle ×1

hdmi ×1