How to project an Android phone to projector in real time? - android

I want to project the screen of my phone using a projector. So far, I've seen some who did it by installing an application on their PC to get a live view of the phone's screen and then connecting the PC to a projector.
Now, I am wondering if I can connect my phone directly to the projector? Of course, that is assuming that I have a micro USB to VGA adapter. Is this possible? What application do I need to let my phone communicate to a projector? How do I do this?

There is no standard on external displaying for android, yet. Many today's model support HDMI, for some platform, system just mirror the phone screen onto projector (like Toshiba), some provides vendor specific API to control displaying (like Moto), some simply cannot control so far (like HTC).

Related

Android Development: How mirroring applications works?

How screen mirroring application works on Android devices?
A piece of data has to be passed from the phone to whatever device is mirroring the phone.
Is that data an image? If yes does taking 60 screenshots per second and sending that data to the mirroring device possible on the phone level, or It is to performance heavy ?
Note: "Mirroring": what appears on the phone screen is appearing on the other device(the mirroring device)
From the chat:
Developer mode on Android device can be enabled
PC browser is requirement
Interaction with Android device from PC is not a requirement
Most likely you should be able to modify or find a modification to how scrcpy behaves.
Given how obvious it would be to send the Android display feed to a browser look to Using a webclient instead sdl app github issue thread for possible solutions or avenues for investigation.

Modify firmware of noname android tablet: first steps

I want to develop a HTML5 app to control doors, lights and other things in my garage. The frontend of will get displayed on a 24/7 turned on screen, that really only displays the app (kiosk mode). So there will be really only the app, no browser controls like back and forth button or url bar, and also no notification bar or back and home buttons of the device. Just the app.
For this I considered 2 options:
Doing it with a raspberry PI & connect a touch screen to i
Doint it on a dead cheap noname Android Tablet
Since the 2nd option is much more elegant from the hardware point of view (everything I need is already built in) I decided to try this first and bought a 70 USD Prestigio Tablet.
But since I'm no android dev, I'm not sure how I can even modify the stock firmware that's currently installed on the device.
As far as I can see, the bootloader is unlocked and ready for flashing a modified firmware image.
And here comes the question:
How can I get the device's currently installed firmware image? Do I have to contact the manufacturer for this or can I extract it from the device directly?
If I get the firmware image, how will I be able to modify files in it?
Or do you think I got the wrong route?
You need to find sources of firmware for your specific device. I bet manufacturer would not provide them. For Nexus devices it is easier because there is AOSP (android open source project) which gives you an opportunity to build a firmware. You can also check specific forums like 4pda.
But there is another way - to make a KIOSK mode for your device example. I'm not sure how does that fit into requirements. Also You can make your app as Launcher app and live with that :)

Automatic screen cast(MediaRouter/Chromecast) on Android or other HDMI display alternative

We have a custom Android device with WiFi/Bluetooth antennae that we intend to operate without direct user interaction (like a router). Normal operation doesn't require any visible display, but troubleshooting or setup will. The device has an HDMI port for connecting to external screens but no built in display.
While we can plug in to an HDMI TV out of the box, the device will generally be in locations where big screens are inconvenient. We would like to make it convenient to display onto laptops or other small screens; the only other ports we have are USB-A receptacles, so I'm assuming any solution will be network (wired or wireless) based.
Edit: I had originally been looking at Chromecast before realizing it was an HDMI plug. Is there a simple way to cast to computers or is a hardware solution likely to be the most viable?
I'm still in the planning phases so will post more information as I run in to it. Am just trying to avoid writing a bunch of code that won't ever work; any alternative suggestions are appreciated. Thanks!
Previous text:
Does anyone have suggestions on how to approach this? My initial research led me towards using MediaRouter to connect to a Chromecast dongle (Device will run Android 4.4.2 ), but I'm unsure if the API gives enough control to find and connect without a display in the first place. I could only find examples of users selecting what to route to, and didn't see any proximity information in MediaRouter.RouteInfo to base make a decision based on (a la RSSI in Bluetooth). Finally, I wasn't sure if this supported devices list meant a custom device wouldn't work.

View mobile screen on PC using adapter

I need to view the live screen of my Android mobile on a Windows PC. My Android phone has a mini-HDMI output. Is there any adapter/software that helps me to achieve this? The applications that I found after searching needs the device to be rooted to control it. I don't want to remotely control the device. I just need to get the live feed from the mobile.
Actually, there are some relatively affordable HDMI-DVI adapters on the market. Couple them with a mini-HDMI to full HDMI cable and you've got yourself a decent hardware setup.
Some notes:
HDMI carries audio and video, while DVI carries only video. However, the two have no difference in video quality, and they use the same encoding.
as Mgamerz said, support for the HDMI outputs on Android phones has been, thus far, dismal. Your phone might have the port, but your ROM might not support it. Furthermore, some apps won't even acknowledge the existence of the HDMI, again, because so few phones have them.
From a hardware and an encoding point of view, this is COMPLETELY possible, but from a software point of view, it is likely IMPOSSIBLE. If you figure out how to do what you're trying, definitely tell as many people as possible.
You're going to need HDMI mirroring, which means you'll need a high end device (most likely dual cores), and support for it is going to have to be built into the rom. I own an atrix, and developers have slaved for months to get HDMI mirroring on it, but only some progress has been made.
Otherwise, unless your device supports it, you won't be able to do it. It's dependent on hardware too.
Edit: There might be some apps to do it but I doubt they will achieve what you seek. HDMI mirroring typically doesn't go past 20fps either (on a dual core 1Ghz).
To use the HDMI port, you'd need something that can accept HDMI input.
Very few computers can do so (except possibly some smart-tv type boxes).
However, there's a good chance that the monitor connected to your computer can. It might even have a spare input.
In other words, displaying your phone's output "in a window" on your monitor is extremely difficult. But by pushing a button or swapping a cable, you may well be able to display your phone's output on the entire monitor, in place of the computer's.
Practically speaking, if you need it in a window, or the device doesn't have HDMI out, the most common solution seems to be a high-end webcam in a fixture to aim it at the device. I saw a presentation that was delivered this way, displaying on very large flatscreen TVs, and didn't even realize that the slides were coming from an Android tablet as seen by an overhead camera until the presenter picked up the tablet and slid a phone into it's place.
http://mymobiler.com/?cat=3
Try this app from mymobiler. it works on motorola atrx 2 with android 2.3.6 rooted.
The site lists only a few supported models but it seems working on other models too.
You can get the full access to the mobile screen in your windows application windows.
It can also capture screenshots and take video of the actions on the screen.

Redirecting/duplicating the UI to an external output

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).
You can write a UiCloningService in jni that exposes a JNI method to clone the display. Usually, as Android is based on Linux, it will use the Linux framebuffer technology to represent display devices as dev nodes under /dev/fb* or /dev/graphics/fb*, where '*' can be 0,1,2,... depending on number of display connected.
As your device already has an HDMI port, it would be exposed via /dev/graphics/fb1, considering fb0 to be your default LCD display.
In the cloning service, you can then write to device attribute files created for the HDMI port under sysfs and, if the display driver of your device has implemented those features (which most probably would have, otherwise what point to have an external HDMI display), these features/functions in the driver will be responsible for cloning the Ui on your primary display to the secondary display.
But you would have to write the Ui cloning service in JNI.(usually device manufacturers provide such methods, if at all an Android SDK is provided by them for development on that particular device).
For eg., I have attached a UiCloningService.cpp that has a cloning JNI function for Android GingerBread on an OMAP3 platform below:
UiCloningService.cpp

Categories

Resources