2017-08-11 20 views
6

私の目標は、Pulse-EightのUSBドングルを装備したAndroidボックスで実行される標準の(つまりシステム以外の)アプリからHDMI CECコマンドを送信することです。AndroidアプリでlibCEC + USBドングルを使用する

these instructions後、私は成功したAndroid向けlibcecをコンパイルして、このコマンドを使用して、ボックスにrootとしてそれを実行するために管理:

echo <my-cec-command> | cec-client -s /dev/ttyACM0 

/dev/ttyACM0はドングルを差し込むときにシステムによって作成されたデバイスファイルです。

ただし、このファイルのアクセス権により、root以外のユーザーがコマンドを実行できないため、Androidアプリケーションから実行することはできません。

一方、アプリは実際にAndroid SDKのUSB Host API(ユーザーが許可している場合)を介してUSBドングルにアクセスし、UsbSerialライブラリのUSBシリアルコントローラにラップすることもできます。

しかし、AndroidのUSBホストAPIとlibcec/cec-clientが提供する接続の間にブリッジを作る方法はありません。アイデアや提案はありますか?

答えて

0

私が今までに見つけた最良の解決策は、純粋なJavaコード(埋め込みlibCECなし)でアダプタのシリアルポート上でCECパケットを読み書きするのに、USB Host API + UsbSerial libraryを使用することです。

libCECでレトロエンジニアリングを行い、TVの切り替え(&)やアクティブソースの設定などの基本的な操作を確認しました。

と私は最終的に以下のUsbCecConnection Javaクラスを思い付いた:https://gist.github.com/sdabet/ac4d7711d1a529806cb7b695530b1fac

+0

が、私はこのアプローチを試みたが、私は()usbManager.getDeviceListを介してすべてのUSBデバイスの一覧を表示しようとすると、それが何のデバイスを返しません。どんな考え?私は自分のアプローチで投稿をしましたが、まだ成功しません(https://stackoverflow.com/questions/45639210/use-libcec-usb-dongle-in-android-app)。ご指導いただいてありがとうございます。 –

関連する問題