¿Cómo hacer una aplicación básica Android Host USB?

Estoy tratando de desarrollar una aplicación que detecta un dispositivo USB y muestra un pop-up cuando está conectado. He seguido el tutorial USB básico que puede encontrar en el sitio web de desarrolladores de Android ( http://developer.android.com/guide/topics/connectivity/usb/host.html )

Aquí está mi Manifiesto de Android:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="br.com.habeis" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="15" android:targetSdkVersion="15" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/title_activity_main" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <intent-filter> <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" /> </intent-filter> <meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" android:resource="@xml/device_filter" /> </activity> </application> </manifest> 

Y mi archivo device_filter.xml:

  <?xml version="1.0" encoding="utf-8"?> <resources> <usb-device vendor-id="0x1BCF" product-id="0x0007" /> </resources> 

Mi actividad

 package br.com.habeis; import java.util.HashMap; import java.util.Iterator; import android.hardware.usb.UsbDevice; import android.hardware.usb.UsbManager; import android.os.Bundle; import android.widget.Toast; import android.app.Activity; import android.content.Context; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE); HashMap<String, UsbDevice> deviceList = manager.getDeviceList(); Iterator<UsbDevice> deviceIterator = deviceList.values().iterator(); while(deviceIterator.hasNext()){ UsbDevice device = deviceIterator.next(); Toast.makeText(this,"Value of device :" +device.getDeviceName(), Toast.LENGTH_LONG).show(); } } } 

¿Alguien sabe lo que falta en mi código?

Mi conjetura es que su vendor-id y product-id están en hexadecimal y necesitan ser enteros. No está muy bien documentado, pero la comprobación https://stackoverflow.com/a/8328814/1302183

Debe ser en números enteros, convertirlos en enteros y luego usar el archivo de filtro de dispositivo

  • Escribir datos en USB HID usando Javascript, HTML5 o cualquier lenguaje de plataforma cruzada (compatible con Android)
  • ¿Es posible detectar la depuración USB en los dispositivos Android?
  • Transferir archivos de android a computadora vía usb programáticamente
  • Anfitrión USB Android y dispositivos ocultos
  • Transferencia de datos isocrónica USB Android
  • No se pueden obtener los elementos en la herramienta uiautomator cuando la aplicación se ejecuta en el dispositivo
  • Permisos de archivos Linux para dispositivos USB en Android
  • Windows no reconocerá el Galaxy S2 en absoluto
  • Java.io.IOException, "número de archivo incorrecto" Conexión USB
  • No se puede recibir la intención de difusión de UsbManager.ACTION_USB_DEVICE_ATTACHED / UsbManager.ACTION_USB_DEVICE_DETACHED
  • Android SDK: cómo leer la clase de un dispositivo USB?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.