2011-02-01 4 views
0

Androidのフレームワークでメインディスプレイ(UI)に表示されているものを複製することは可能ですか?外部出力へのUIのリダイレクト/複製

多くの人に自分のアプリを紹介する必要がある状況があります。画面の内容を外部のモニターやテレビに複製できれば簡単にできます。私はHDMIポートを使用するアイデアとは結婚していませんが、必要に応じてWi-FiまたはBluetoothまたはUSBを使ってこれを行うことができます。私が探しているのは、2台目のモニターが接続されているときにWindowsがデフォルトで行うのと同様のことができるかどうかを確認することです。

私は開発者のドキュメントを読んできましたが、これを実行できるものは何も見つかりませんでしたが、私が何かを見逃したのは初めてではありません。特に私はHTC Evoでこれを行う必要があります。

答えて

4

オプションは、お使いのデバイスによって異なります。 HTC EVOのHDMIポートは、内蔵のギャラリーアプリケーション(ビデオと静止画)を介してのみアプリケーションを再生します。

[email protected]のような「ソフトウェアプロジェクタ」を使用する必要があります - プロジェクタに接続されたAndroid SDK搭載ノートブックにEVOを取り付けます。 Droid @ Screenは、ノートブックにEVOの画面を表示します(そこから、プロジェクターに)。ただし、Droid @ Screenが利用するSDKツールの制限により、フレームレートは約5-6fpsに制限されています。

または、HTC Droid Incredibleを手に入れてください。これは、特別なケーブルを使用して、メインディスプレイ上の何かのTVへのコンポジット出力をサポートしています。 Samsung Galaxy Tabはこれまでの実験に基づいてSurfaceViewが含まれていないものでもサポートしています。三星銀河Sのいくつかのバージョンもこれを、少なくともある程度はサポートしています。

または、ウェブカメラを使用してください。

または、ELMO(基本的にドキュメントまたはデバイスの投影用に設計されたウェブカメラ)を使用します。

+0

ありがとう:例えばのために

は、私は下のOMAP3プラットフォーム上でAndroidのジンジャーブレッドのためのクローニングJNI機能を持つUiCloningService.cppを添付しています!間違いなく私が探していたもの! – Kingsolmn

+0

アプリケーションがこの動作をブロックすることは可能ですか?私は、ビデオのようなアプリケーションのコンテンツをTV Outやそのような同様のケーブルを介してテレビに表示することは望ましくありません。これを行う方法はありますか? http://stackoverflow.com/questions/5561232/block-tv-out-for-my-application – DeRagan

1

表示を複製するJNIメソッドを公開するjniでUiCloningServiceを記述できます。アンドロイドは、Linuxをベースにしているよう'*'が接続されたディスプレイの数に応じて0,1,2,...ことができる場所通常、それは/dev/fb*または/dev/graphics/fb*、下のdevのノードとして表示デバイスを表すために、Linuxのフレームバッファ技術を使用します。

デバイスに既にHDMIポートがあるため、/dev/graphics/fb1で公開されます(fb0はデフォルトのLCDディスプレイとみなされます)。

sysfsの下のHDMIポート用に作成されたデバイス属性ファイルに書き込むことができます。デバイスのディスプレイドライバがこれらの機能を実装している場合(ほとんどの場合そうでしょう。外部のHDMIディスプレイ)、ドライバでこれらの機能/機能は、セカンダリディスプレイにプライマリディスプレイにUIをクローニングするための責任を負うことになります。

しかし、あなたはJNIのUIクローニングサービスを記述しなければならない。(全くのAndroid SDKは、その特定のデバイス上での開発のためにそれらによって提供されている場合、通常は、デバイスメーカーは、このような方法を提供)。 。ヒントについて

UiCloningService.cpp