Android 区分U盘和外部设备的办法

项目需要插入U盘时跳转页面,后来又加入了USB安防头(摄像头),导致插入安防头后同样也跳转到U盘插入的页面了。

经过调查和研究找到了区分的办法,下面是具体的实现:在此记录一下

在监听U口的广播里

private BroadcastReceivermOtgReceiver =new BroadcastReceiver() {

public void onReceive(Context context, Intent intent) {

String action = intent.getAction();

UsbDevice device = intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);

UsbInterface anInterface = device.getInterface(0);

int interfaceClass = anInterface.getInterfaceClass();

Log.i(TAG,"检测到U口设备插入:" +"Id:" + anInterface.getId() +"\n" +"InterfaceClass:" + anInterface.getInterfaceClass());

if (action !=null) {

switch (action) {

case ACTION_USB_PERMISSION://接受到自定义广播

                    break;

case UsbManager.ACTION_USB_DEVICE_ATTACHED://接收到存储设备插入广播

                    if (interfaceClass ==8) {

Log.i(TAG,"管理员通过U口,插入U盘");

startUSBActivity(SocketAndIotService.this, ReadUDiskActivity.class);

}else {

Log.i(TAG,"管理员通过U口,插入外接设备");

}

break;

case UsbManager.ACTION_USB_DEVICE_DETACHED://接收到存储设备拔出广播

                    if (interfaceClass ==8) {

Log.i(TAG,"管理员移除U盘");

}else {

Log.i(TAG,"管理员移除外接设备");

}

break;

}

}

}

};


希望能给需要的人带来帮助。

你可能感兴趣的:(Android 区分U盘和外部设备的办法)