[Q] Using USB Host API - cannot enumerate device - Android Software/Hacking General [Developers Only]

I am quite interested in usage USB host ability on my china no-name tablet based on Allwinner A13 CPU. I'd like to use it as GUI front-end for my embedded project with STM32F4 ARM microcotroller. So far I use laptop as the GUI for this device. STM32F4 is connected via USB as a vendor-specified device. I use WinUSB library on laptop to enumerate connected device and to open endpoints.
I'd like to use tablet instead of PC. So I looked to the USB host API on Android and tried to enumerate devices. However I couldn't enumerate any device - includes mouse or flash drive, which works perfectly in the system, but getDeviceList from UsbManager returns emtpy list.
I installed USB Host Diagnostics application and run a test. All results are yes, only items "Claims support" and "Device detected" in Android API shows no. But there's an item "Device detected" in Rooted API, which is yes.
I'm quite new to Andoroid developing. What is Rooted USB host API? How can I use it? Thank you for your answer.

Related

[Q] is /dev/bus/usb/* Standard in Android

I have an ePad (Android 2.1) that mounts usb devices in the normal Linux way so that I can use libusb to access them, I have managed to control my usb robot arm using an NDK app. Before I move onto making it a proper app instead of a hack job I wanted to know if the usb device files are standard to Android or if it's specific to my system.
Put it this way, if I make a nice cuddly app is it going to fail on most devices or work on most devices? (ones with USB OTG interface)
Sorry, I understand this could be a 'how long is a piece of string' type of question.
Many thanks,
Richard e Collins.
After a few hours of routing about on the internet I found an article on an exploit on the init daemon, google "android-root-source-code-looking-at-the-c-skills". This gave enough insight for me to deduce that this functionality I am getting is present on at least anything running 2.1 and above and is not a customisation unique to my device.

[Q] developing app to use USB webcam

Hello *,
a customer asked me to develop an app for Android tablets that should use an external USB webcam (UVC). The app should target any consumer tablet that has a USB Host interface and MUST NOT require rooting.
According to API level 12 docs or Android 3.1, it is possible to use any external USB device.
Until here is theory. Is it actually possible, in practice, and how hard can it be to write java code that implements a UVC driver in user space? The UVC standard documents are hundreds pages long and I fail to understand how much of that specs need to be implemented on the host side, and how much is eventually already implemented in the Android Linux kernels.

Accessing USB devices without root from Android NDK code

First up, I tried to post this in "Android Software Development" but unfortunately don't have the minimum 10 posts required to do so and didn't really feel like spamming the forums to make the count. If a moderator could move this post for me it would be greatly appreciated.
On an Android 4.0+ device (ie, contains the USB Host APIs), you can write applications that interface with USB devices that don't require root. Unfortunately I'm working with a codebase that is in C using libusb and while I've gotten a prototype working in a terminal emulator, at this stage it seems to require root to actually talk to the devices (enumerating devices seems ok though).
I had a look at the Android NDK API list but didn't see any reference to USB Host APIs leading me to believe that the only ones that exist are the underlying Linux APIs. Is there a way (without bouncing all calls to the USB Host APIs through JNI, or rewriting the entire thing in Java) to access USB devices when in USB OTG mode without root from Android NDK code?

[Q] Where does Android map USB devices to the apps that handle them?

When I plug a USB device into an Android tablet, the OS has the ability to "know" what app needs to be launched in order to handle it. This is probably based on the VID/PID values that come from the USB device during configuration. But somewhere, Android must be storing the relationship between VID/PID and application. Where is that mapping stored? I've searched and cannot find anything on this topic.
Thanks!

send serial data over USB from my motorola defy+

Hi xda dev team !
I would like to write an android app which sends serial data (over USB as bridge) to a hobby
circuit. The app should work on my Motorola Defy+ (android 2.3.6) and look like
a text editor (with some exceptions) - the window content should be sent to my circuit.
The problem is that the only programming language I know is C and my Linux knowledge
is minimal, almost zero ! FTDI offers some "java drivers" on their site for USB to serial converter
chipsets, but those work only on android 3.1 and above (USB host capability on android device).
An alternative would be the use chipsets like FT 311/312 which act as usb hosts
and comunicate over AOA (Android Open Accessory) Protocols with android devices.
How do i know which AOA protocol version my phone has (i want to make my app upwards compatible
so it can be used by as much android devices as possible)? Also, which IDE should i use
taking into account that i'm a beginner in this matter ? Can somebody give me some tips
where to start from ?
thanks!

Categories

Resources