I fiddled with the USB host and following the recommendations on the Android developers site I managed to create Hello World, which starts after connecting a specific USB device. However, when I try and "... get a UsbDevice that represents the connected device from intent," it returns null:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Intent intent = new Intent(); UsbDevice device = (UsbDevice) intent.getParcelableExtra(UsbManager.EXTRA_DEVICE); // device is always null if (device == null){Log.i(TAG,"Null device");}
Here is my manifest:
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" android:resource="@xml/device_filter" /> </activity> </application>
And my xml / device_filter.xml (I know that this is the correct VID and PID, because I have a similar application that works using the enumeration method described on the Android developers site :
<resources> <usb-device vendor-id="1234" product-id="1234"/> </resources>
source share