1.添加权限
<uses-feature android:name="android.hardware.usb.host" />
<meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"/>
2在activity中
private UsbManager mUsbManager = null;
private UsbDevice device = null;
private static final String ACTION_USB_PERMISSION = "usb_premission";
private PendingIntent mPermissionIntent = null;
/**
* 获取设备所有USB接口信息
* @param context
*/
private void initUsb() {
mPermissionIntent = PendingIntent.getBroadcast(context, 0, new
Intent(ACTION_USB_PERMISSION), 0);
IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION);
filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
registerReceiver(mUsbReceiver, filter);
mUsbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
HashMap<String, UsbDevice> deviceList = mUsbManager.getDeviceList();
Iterator<UsbDevice> deviceIterator = deviceList.values().iterator();
boolean havamUsb = false;
while (deviceIterator.hasNext()) {
device = deviceIterator.next();
int count = device.getInterfaceCount();
for (int i = 0; i < count; i++) {
UsbInterface intf = device.getInterface(i);
if (intf.getInterfaceClass() == "你需要的设备的Class ID") {
havamUsb = true;
mUsbManager.requestPermission(device, mPermissionIntent);
}
}
}
if (!havamUsb) {
AppLogger.i("Usb设备不存在");
}
}
usb设备拔插监听
private BroadcastReceiver mUsbReceiver = new BroadcastReceiver()
{
public void onReceive(Context context, Intent intent)
{
try{
String action = intent.getAction();
if (ACTION_USB_PERMISSION.equals(action)){
synchronized (this){
device = (UsbDevice)intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);
if (intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)){
Log.i("USB连接成功",""+device.getDeviceName());
}else{
return;
}
}
}
if (UsbManager.ACTION_USB_DEVICE_DETACHED.equals(action)){
device = (UsbDevice)intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);
if (device != null){
int count = device.getInterfaceCount();
for (int i = 0; i < count; i++){
UsbInterface intf = device.getInterface(i);
if (intf.getInterfaceClass() == "你需要的设备的Class ID"){
Log.i("USB已移除",""+device.getDeviceName());
}
}
}
}
}catch (Exception e){
Log.e("TAG", (new StringBuilder("Activity_Main --> mUsbReceiver
")).append(e.getMessage()).toString());
}
}
};
最后别忘了注销
@Override
protected void onDestroy() {
super.onDestroy();
try {
关闭你的USB端口;
if (mUsbReceiver!=null){
unregisterReceiver(mUsbReceiver);
}
} catch (Exception e) {
e.printStackTrace();
}
}