在AndroidManifest.xml
的activity
部分加入:
<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/usb_device_filter" />
<intent-filter>
<action android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" />
</intent-filter>
<meta-data android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" android:resource="@xml/usb_device_filter" />
并且在application之上,加入:
<uses-permission android:name="android.permission.MANAGE_USB" />
新建res/xml/usb_device_filter.xml
,并加入:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<usb-device vendor-id="7208" product-id="49170" />
</resources>
其中,vendor-id和product-id可以用如下方法获取,都是10进制的。
如何获取外置USB设备的vendor-id和product-id
adb shell
cat /sys/kernel/debug/usb/devices
会看到:
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=1c28 ProdID=c012 Rev= 0.00
S: Manufacturer=PMDtec
S: Product=FX3
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
其中的Vendor=1c28 ProdID=c012
就是我们需要的。它们是16进制的。
把16进制转换成10进制:
hex 1c28 => dec 7208
hex c012 => dec 49170