Problema de host USB Usb con tableta Samsung Galaxy 10.1

Estoy intentando aprovechar la capacidad del host USB en la tableta Samsung Galaxy. Compré el dongle adjunto de Samsung http: //www.samsung.com/us/mobile/galaxy-tab-accessories/EPL-1PL0BEGST). Cuando conecté por primera vez un dispositivo USB a través de este dispositivo de seguridad, tuve un error de alta potencia de la tableta Galaxy: para su información, uso un concentrador USB con alimentación externa y puede bipass esto.

Ahora que el dispositivo en sí reconoce la existencia de un periférico USB cuando lo conecto, intenté usar android.hardware.usb.UsbDevice de Android; importar android.hardware.usb.UsbManager; biblioteca. Vi que hay dos métodos para reconocer un dispositivo USB, registrar un receptor de transmisión para escuchar las intenciones a través de

IntentFilter usbIntentFilter = new IntentFilter();
usbIntentFilter.addAction("android.hardware.usb.action.USB_DEVICE_ATTACHED");          
usbIntentFilter.addAction("android.hardware.usb.action.USB_DEVICE_DETACHED"); 
registerReceiver(mUsbReceiver,usbIntentFilter);

Esto no dispara ningún intento cuando conecto algún dispositivo, extraño ... ok. Así que probé el siguiente método: consultar explícitamente una lista de dispositivos a través del UsbManager; esto se logró de la siguiente manera:

HashMap<String, UsbDevice> deviceList = manager.getDeviceList();
    int count = deviceList.size();
    Iterator<UsbDevice> iterator = deviceList.values().iterator();

    if(iterator.hasNext()){
    UsbDevice deviceVal = iterator.next();
    testTxtView1.setText("set device " + deviceVal); 
    }

Esto presumiblemente tomaría el dispositivo USB (solo un dispositivo USB actualmente compatible con la documentación de Google) que está conectado actualmente. Para probar esto, llamaría al código anterior al hacer clic en un botón y mostrar los resultados del dispositivo. Por alguna razón, obtengo un dispositivo de la lista de dispositivos cada vez, ya sea que haya un dispositivo de seguridad USB conectado o no. Además, el dispositivo es el mismo cada vez, independientemente de la llave USB (o la falta de ella). El resultado es el siguiente:

device usbDevice [mName = / dev / bus / usb / 001/002, mVendorId = 1256, mProductId = 27033, mClass = 0, mSubClass = 0, mProtocol = 0, mInterfaces = [Landroid.os.Parcelable; @ 406ff4d8]

^^ el valor @ 406ff4d8 cambia cada vez que consulto este código (solo pongo una sola instancia)

He buscado en todas partes y no he podido encontrar ningún problema o solución similar que pueda aplicarse a mi situación. He intentado implementar los ejemplos de USB de Google (que es exactamente lo que tengo esencialmente, arranqué el suyo) y me encuentro con estos problemas.

También debería mencionar la composición de mi manifiesto:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="edu.mit.ll.drm4000"
  android:versionCode="1"
  android:versionName="1.0">
<uses-feature android:name="android.hardware.usb.host" />
<uses-sdk android:minSdkVersion="12" />

<application android:icon="@drawable/icon" android:label="@string/app_name">


    <activity android:name=".DRM4000Activity"
              android:label="@string/app_name">
        <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>

y filtro de dispositivo:


(Eliminé criterios en el filtro del dispositivo pero también intenté insertar información específica sobre el dispositivo que estoy buscando ... ambos fueron en vano).

Cualquier ayuda con respecto a este problema sería muy apreciada!

Otra actualización: el dispositivo del que me quejé siempre aparece en la lista de dispositivos

device usbDevice [mName = / dev / bus / usb / 001/002, mVendorId = 1256, mProductId = 27033, mClass = 0, mSubClass = 0, mProtocol = 0, mInterfaces = [Landroid.os.Parcelable; @ 406ff4d8]

debe ser el puerto usb del lado de Android o algo así ... porque comencé a conectar un montón de dispositivos diferentes a mi código y descubrí que (similar a este enlace:USB_DEVICE_ATTACHED Intento no disparando) Dispositivos HID, dispositivos arduino ... y lamentablemente ... mi dispositivo USB no parece disparar una intención o no se enumera por el concentrador USB. Intenté con una unidad flash USB y la enumeré y funcionó ... sin embargo, aparece como el SEGUNDO dispositivo en la lista, el primero es el dispositivo usb siempre presente mencionado anteriormente. Sin embargo, las intenciones sí disparan.

Alguien conoce una solución alternativa para hacer que las intenciones se disparen con dispositivos HID y otros dispositivos USB, excepto los pocos Android que parece hacer ahor

Respuestas a la pregunta(6)

Su respuesta a la pregunta