I'm a software developer with amateur electronics skills, and I've accidentally volunteered myself (need to work on those soft skills lol) to prototype a "Device" with the following requirements:

1) Need a "Device" to be connected inline via USB to a USB Host system and an Android device.

2) The Host system must detect the Device as USB HID (can't install drivers.)

3) The Android device needs to be able to programmatically tell the device to send arbitrary keystrokes & combinations to the Host via its HID connection.

4) I have to keep the price down, because once I demonstrate proof of concept I'm to make hands on demos which will be given to developers.

I really like the Teensy 3.0 for this, because its compact, affordable, and easy to prototype with (I'm hoping to encourage these developers to become more involved.)

I'm trying to avoid the added cost of a USB or Host USB shield, so I can make more units within budget.

The v-usb project looks promising, since speed is already limited by the keyboard limitation .. (absurd bureaucracy does support job security, at least,) I'm not too concerned about a software USB implementation.

I've seen a lot of examples of similar projects here on pjrc and beyond, but as a novice in this area I can use any guidance you're willing to share.

I have read a lot of docs in the last couple days, but I am a noob at this so please forgive my temporary lack of subject knowledge, just looking for some leads and/or a good shove for my first microcontroller project.

First, is the Teensy 3 my best option for this?

Are there any products that already do this that I've missed?

Can I add a USB port by wiring a port to the board and utilizing the vusb library?

As far as I can tell, I won't *need* it to be a USB Host, I could just setup the Teensy 3 USB Micro AB as a HID emulator, then wire in a USB cable or port for attaching an Android device; then, I believe I could enumerate the device as a printer or some other device that could accept a data stream, then Teensy 3 could format and send the keystrokes & combinations?

Could a wired-in port/cable perform as a USB-Host (for charging the Android device) or emulated/enumerated HID (so I could reversr the roles and use the built-in USB Host port to charge the Android device?

Sorry for the verbosity, I really did edit out a ton of text...