一、前言:
Android USB有两种模式Host Mode和Accessory Mode:
1)Host Mode:Android手机作为主设备,如通过OTG线连接的HID设备或者U盘为从设备;
2)Accessory Mode:Android手机作为从设备,如通过USB数据线连接的电脑为主设备。
下面主要介绍Host Mode。(官方文档:https://developer.android.com/guide/topics/connectivity/usb/host#java)
二、使用详解(一):应用权限
1、在AndroidManifest.xml文件中申请权限:
<manifest ...>
<uses-feature android:name="android.hardware.usb.host" /> //申请应用USB权限
<uses-sdk android:minSdkVersion="12" />
...
<application>
<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/device_filter" />
</activity>
</application>
</manifest>
2、在res/xml文件夹下新建device_filter.xml,内容如下:
<resources>
<usb-device vendor-id="1234" product-id="5678" class="255" subclass="66" protocol="1" />
</resources>
一般情况下写明vendor-id和product-id即可。其中vendor-id和product-id为插入USB设备的生产厂家号和产品号,在插入(attached)上面列出的设备之一时,就会弹出选择打开应用程序的对