メインコンテンツをHDMI経由でAndroidに接続した大画面に表示し、Androidのタッチスクリーンをさまざまなコンテンツを表示するコントローラーとして使用できるアプリケーションを開発できるかどうか疑問に思っています。
これまでのところ、AndroidのHDMI機能について見たビデオは、電話の画面を大画面にミラーリングするだけです。
Android プレゼンテーション API (API 17)を使用できます。非常にうまく機能します。
プレゼンテーションはアクティビティに接続されています。これにより、ライブ ストリームなどを TV に (HDMI などを介して) 表示したり、電話のディスプレイをリモコンとして使用したりできます。私はアプリでこれを行いましたが、怠惰から、Bluetoothリモコンとして使用される2番目の電話用の2番目のアプリを追加しました。
これがあなたの質問に答えることを願っています。
サーフェスフリンガーには、通常のUIディスプレイ用のフレームバッファーと、ビデオおよびカメラプレビュー用のオーバーレイバッファーの2種類のグラフィックバッファーのみが表示されます。したがって、フレームバッファ(またはオーバーレイバッファ)は、hdmiケーブルが接続されているときにディスプレイコントローラによってhdmiに転送される必要があります。ただし、残念ながら、この種のデータフローを制御するパブリックAPIはありません。これは、ハードウェアオーバーレイまたはhdmiデバイスドライバーがチップセットベンダーまたはデバイスメーカーによってどのように実装されているかに大きく依存します。
一部の Motorola デバイスのように、ベンダーが HDMI API を公開しているデバイス向けに開発しない限り、これを行うことはできないと思います。残りの部分については、通常、hdmi 制御用に ioctls と /dev/ アクセスを使用する hdmi OS サービス (アプリにはアクセスできません) があります (ここでも、署名されていないアプリにはアクセスできません)。
これを実現するために、HDMI オーバーレイ通信の欠陥を悪用できます。ビデオ入力は Android 出力に直接送られますが、オーバーレイの問題により HDMI で表示されない画面に別のレイアウトを使用できます。