Android has a little known feature that provides built-in support for USB hardware devices. Provided you have the right adapter, you can plug in a keyboard, mouse, gaming controller, or USB drive and it will just work. This is due to a USB specification called USB On-The-Go (OTG) and it’s an amazing piece of functionality.
My Frankenstein tablet project generated a lot of interest for OTG with Android and I wanted to explore the idea further. I couldn’t find an official list of hardware that would work with Android via OTG beyond some details on the InputDevice class so I figured I should make my own list.
After rummaging through my box of computer hardware and with a little bit of testing I have generated the following list of USB devices compatible with Android.
|Android Phone||Yes||Select "Transfer Files" from the slave phone|
|Card Reader – SD||Yes||Format card with Android|
|DVD Drive||No||Tried a few apps that claimed support|
|Flash Drive||Yes||Format with Android|
|Game Controller – N64||Yes|
|Game Controller – SNES||Yes|
|Game Controller – xBox "S"||Yes|
|Hard Drive||Yes||Format disk with Android|
Stay tuned, I’ll update this list with new devices! I would like to test more output devices including a USB monitor.
Overall it seems like most mass storage devices, cameras, and game controllers are compatible. I was surprised at the extent of native support and the prevalence of apps offering third party support.
Android has a ton of functionality when you consider the full list of both Bluetooth and USB devices. Some of the tested USB devices have some questionable usability when there’s a Bluetooth alternative but I’m still amazed that there’s any USB support available.
I thought about my own historical use of my Nexus tablet and I do extend it with external devices quite frequently. My top use cases are as follows:
- Flash drive – I have a USB drive filled with movies and TV shows that makes the tablet perfect for travel. Nothing like having a full 128 GB media library for long flights or hotel stays. I highly recommend MX Player, it has better codec support than VLC.
- Bluetooth mouse – I hate the mobile version of most websites but my fat fingers can’t click the tiny links when I request the desktop version. Having a mouse input provides so much more precision when web browsing, it’s like night and day. Perfect for web surfing while watching football or a movie.
- N64 controller – 99% of my tablet gaming is through the Mega N64 emulator. I’m still amazed at the performance, playing these games on a tablet really makes me feel like we’re living in the future. Nothing like a quick round of Super Smash for some fun!