2011-02-01 69 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