I have been tasked with sourcing an off the shelf touch pad device that can be used as a dedicated industrial instrument controller.
Is it possible to run a dedicated application and prevent user access to all other functions/applications within Android.
Also is it possible write your own USB device driver which would allow you to connect an USB serial class device?
Of course you can. Like already stated Android is open source. You can take the sources and recode them to your desire so that the device behaves like you want.
In the end the default android launcher and all other applications are all just standard Java applications (mainly). You can recode it so that instead of loading the launcher app it loads up your app.
I think you can use this OS to make your own custom gadgets same as you can use linux in embedded systems.
Its open source so you can go down into the OS code and disable what you like. So i would say it is indeed possible. Windows does also do windows embedded like windows CE/WM range, these have touch screens and come in rugged form factors too, M3,PSION and others.
You can recode the OS visual display, i.e. HTC sense on all their phones. So you could recode it to show nothing.
As to the driver, well a driver is a driver this will also be possible.
Related
Basically I would like to plug in my Android phone to a Linux computer and have it appear as a USB video device such that it can be seen in /dev/videoX and can be opened to capture video / images using the phone's camera.
Are there any specific hardware / Android limitations that would make this infeasible?
What are the general steps involved in making this happen (if at all possible)?
Can it be done as an Android app or does it require completely modifying the Android / kernel?
I assme you want to use your Android Phone as Webcam? There's an App for that. I believe Droidcam was it called. Check it out here:
Droidcam Instructions for Linux
As far as I know, /dev/video0 , /dev/video1 and so on are devices that show up for drivers are based of the V4L2 (Video For Linux Version 2) subsystem.
What are the general steps involved in making this happen (if at all possible)?
The naive developer way would be to write a USB driver that recognizes your phone and registers a V4L2 driver for it. It could be an empty driver.
Can it be done as an Android app or does it require completely modifying the Android / kernel?
I suppose you could build a loadable module (ko) for this.
Please re-purpose your question to what you really want to achieve, as this may not be the right way of doing this.
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 :)
I have a 42 inch multi-touch monitor with IR Input. I want to develop applications for multi-touch input and I have planned to go with android. Is there any way to get touch input? when we go with WPF, have to depend on a PC. Im really confused how to go through!! please help me out.Is standalone monitor possible in ANDROID?
Generally it appears that the only option to get Android (at least under ICS) to include touch screen HID drivers is to recompile Android from source.
Here are some instructions for exactly the purpose you describe (they also require the PandaBoard single-board computer as an intermediary).
There's a guy on xda-developers who's trying to do this using the Android USB Host functionality and MHL only on a Samsung Galaxy S3, but there's no confirmation one way or the other that he ever got that working.
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
I have a Symbian based phone with a ARM Cortex-A8 processor (SonyEricsson Vivaz) and was thinking on how hard would it be to try and port the Android OS for it. Obviously Android runs on a myriad of devices with different hardware so I imagine it shouldn't be too hard to adapt it to SE hardware. Could some one give me a clue where to start or if this is even undertakable...
How much information do you have about the hardware in the phone ? Are you starting completely from scratch ?
Porting Android is not simple task. First thing is to have Linux running (preferably 2.6.32 for more compatibility with the latest releases of AOSP.
If you can find a kernel that can run on your phone, that's one big step. After that, you want make sure that the peripherals you want to use also have the right drivers : touch interface, LCD display, SD card, audio, video. The ones that are probably most difficult will be wifi, radio (GSM) and power management module.
If you get that far, you don't have that much to go anymore, a few more changes in the kernel needed for Android, be able to compile Android correctly file system, hook up a few things like buttons and correctly interface with the drivers mentioned above...
But overall, definitely not an easy task (IMHO).