Tienes soporte nativo en Android a partir de Honeycomb con el API
http://developer.android.com/guide/t.../usb/host.html
Lo explican muy bien en la documentación, a grandes rasgos: con el UsbManager listas todos los dispositivos conectados, cuando encuentres el que quieres tendrás la referencia al objeto UsbDevice que lo representa, luego pides permiso para usar el dispositivo con un intent, estableces la conexión y vas escribiendo los bytes que quieras.