Wie zu erkennen angeschlossene USB-Gerät mit UsbManager?

Ich bin neu in android-Programmierung, mein Hauptziel ist es, die Kommunikation über USB an einen MCU mit FT200XD USB-zu-I2C-Brücke.

Erste, den ich versuche zu erkennen angeschlossene USB-Gerät über die UsbManager. Von dem was ich verstehe, auf erstellen Sie ein popup-Fenster sollte um Erlaubnis bitten, um eine Verbindung vom Benutzer aber keine Erlaubnis gefragt ist. Beim Debuggen ist klar, dass die Kontrolle nicht in der broadcast-Empfänger-Abschnitt.

Habe ich gepfiffen paar Beispiel-code-snippet und schrieb den code unten. Ich weiß nicht, was ich falsch mache.

Heruntergeladen habe ich eine app namens"USB host Controller", die nicht erkennen, die FT200XD. Das heißt, mein tablet hat den USB-host-Funktion. Es wird großartig sein, wenn Sie können zeigen Sie mir die richtige Richtung oder eine gesamte funktionierende code gemeinsam genutzt werden kann.

Mein code ist wie folgt:

Java-Datei:

     @Override
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);

       setContentView(R.layout.activity_fullscreen);


        mUsbManager = (UsbManager) getSystemService(Context.USB_SERVICE);

        mPermissionIntent= PendingIntent.getBroadcast(this, 0, new  Intent(ACTION_USB_PERMISSION), 0); 
        IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION);
        filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
        filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
        filter.addAction(UsbManager.EXTRA_PERMISSION_GRANTED);
        filter.addAction(ACTION_USB_PERMISSION);
        registerReceiver(mUsbReceiver, filter);

        }



 //Broadcast receiver

        public class  mUsbReceiver extends BroadcastReceiver { 

            public void onReceive(Context context, Intent intent) {


                Toast.makeText(getApplicationContext(), 
                  "Inside USB Broadcast", Toast.LENGTH_SHORT).show();

            }
        }

Manifest-Datei Teil:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.usb"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="12"
        android:targetSdkVersion="19" />

     <uses-feature android:name="android.hardware.usb.host" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

         <receiver android:name="mUsbReceiver">

           <intent-filter>
             <action android:name="android.hardware.usb.action.ACTION_USB_PERMISSION"/>

            </intent-filter>
         </receiver>

        <activity
            android:name="com.example.usb.FullscreenActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:label="@string/app_name"
            android:theme="@style/FullscreenTheme" >
            <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_DETACHED" />
                <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>

Device_filter.xml Datei:

    <?xml version="1.0" encoding="utf-8"?>
     <resources>
    <!-- 0x0403 /0x6001: FTDI FT232R UART -->
    <usb-device vendor-id="1027" product-id="24577" />

    <!-- 0x2341 /Arduino -->
    <usb-device vendor-id="9025" />

    <!-- 0x16C0 /0x0483: Teensyduino  -->
    <usb-device vendor-id="5824" product-id="1155" />

    <!-- 0x617 /0x000b: EFPL CC2531 -->
    <usb-device vendor-id="1559" product-id="11" />

    <!-- vendor-id="0x0403" product-id="0x6015" //converted to Int vendor ID and product ID of my FT200XD-->
     <usb-device vendor-id="1027" product-id="24597" />

</resources>
InformationsquelleAutor PKadam | 2014-08-11
Schreibe einen Kommentar