我正在搞乱 USB 主机,并按照Android 开发者网站上的指南,我设法创建了一个 Hello World,一旦插入特定的 USB 设备就会启动。但是,当我尝试“......从意图中获取表示连接设备的 UsbDevice”它返回 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");}
这是我的清单:
<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>
还有我的 xml/device_filter.xml(我知道这些是正确的 VID 和 PID,因为我有一个类似的应用程序使用Android 开发者网站上描述的枚举方法工作):
<resources>
<usb-device vendor-id="1234" product-id="1234"/>
</resources>