2011-02-01 71 views
0

Android框架中是否可以複製顯示在主顯示屏(UI)上的內容?將用戶界面重定向/複製到外部輸出

我有一種情況,我需要向很多人展示我的應用程序,如果我可以將屏幕內容複製到外部顯示器/電視上,則會更容易。我並不想結合使用HDMI端口的想法,如果需要的話,我很樂意通過Wi-Fi或藍牙或USB這樣做。我在尋找的是看看我是否可以做類似於第二臺顯示器連接時默認使用Windows的功能。

我已經通過開發人員的文檔,並沒有找到任何可以讓我這樣做,但它不會是我第一次錯過任何東西。具體而言,我需要用HTC Evo來做到這一點。

回答

4

您的選擇是有限的,主要由您選擇的設備。 HTC EVO的HDMI端口只能通過內置的Gallery應用程序(視頻和靜態照片)回放應用程序。

您需要使用像[email protected]這樣的「軟件投影儀」 - 將EVO連接到連接到投影儀的安裝了Android SDK的筆記本電腦。 Droid @ Screen將在筆記本上顯示EVO的屏幕(並從那裏,投影儀上)。但是,由於Droid @ Screen所使用的SDK工具的限制,幀速率限制在5-6 fps左右。

或者,您可以使用HTC Droid Incredible,它可以通過一根特殊的電纜在主顯示屏上支持複合電視輸出。基於我迄今爲止的實驗,三星Galaxy Tab也支持任何不涉及SurfaceView的事情。一些版本的三星Galaxy S也支持這一點,至少在某種程度上。

或者,使用網絡攝像機。或者,使用ELMO(基本上是爲文檔或設備投影設計的網絡攝像頭)。

+0

感謝您的提示!絕對是我在找的! – Kingsolmn 2011-02-03 00:19:40

1

你可以在jni中編寫一個UiCloningService來公開一個JNI方法來克隆顯示。通常,由於Android基於Linux,它將使用Linux幀緩衝技術將顯示設備表示爲/dev/fb*/dev/graphics/fb*下的開發節點,其中'*'可以是0,1,2,...,具體取決於連接的顯示器數量。

由於您的設備已經有HDMI端口,因此將通過/dev/graphics/fb1曝光,因爲fb0是您的默認LCD顯示屏。

在克隆服務中,您可以寫入在sysfs下爲HDMI端口創建的設備屬性文件,並且如果設備的顯示驅動程序已經實現了這些功能(很可能會有這些功能,否則有什麼要點外部HDMI顯示器),驅動程序中的這些功能/功能將負責將主顯示器上的UI複製到輔助顯示器。

但是你必須在JNI中編寫Ui克隆服務(通常設備製造商提供這樣的方法,如果它們提供了這些方法,那麼它們將在該特定設備上進行開發)。 。

對於如我附上一個UiCloningService.cpp具有用於Android的薑餅克隆JNI功能的OMAP3平臺下面:

UiCloningService.cpp