Is it possible in the Android framework to duplicate what is displayed on the main display (UI)?
I have a situation where I need to demonstrate my app to many people, and it would be easier to do if I can duplicate the screen contents to an external monitor/TV. I am not married to the idea of using the HDMI port, I would be happy doing this through Wi-Fi or Bluetooth or USB if need be. What I am looking for is to see if I can do something similar to what Windows does by default when a second monitor is connected.
I have been through the developer’s documentation and haven’t been able to find anything that would allow me to do this, but it would not be the first time I’ve missed something. Specifically I need to do this with an HTC Evo.
Your options are limited, mostly by your choice of device. The HTC EVO’s HDMI port will only play back apps via the built-in Gallery application (videos and still photos).
You will need to use a “software projector” like Droid@Screen — attach your EVO to a Android SDK-equipped notebook that is connected to a projector. Droid@Screen will display the EVO’s screen on the notebook (and, from there, on the projector). However, the frame rate is limited to about 5-6 fps, due to limitations in the SDK tools that Droid@Screen leverages.
Or, get your hands on an HTC Droid Incredible, which supports composite output to TVs of anything on the main display via a special cable. The Samsung Galaxy Tab also supports this for anything that does not involve a
SurfaceView, based on my experimentation to date. Some versions of the Samsung Galaxy S also support this, at least to some extent.Or, use a webcam.
Or, use an ELMO (basically a webcam designed for document or device projection).