android 检测USB是U盘还是外设
来源:互联网 发布:mybatis 配置打印sql 编辑:程序博客网 时间:2024/06/07 11:19
1
- UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
- HashMap<String, UsbDevice> deviceList = manager.getDeviceList();
- Iterator<UsbDevice> deviceIterator = deviceList.values().iterator();
- StringBuilder sb = new StringBuilder();
- while (deviceIterator.hasNext()){
- UsbDevice usbDevice = deviceIterator.next();
- sb.append("DeviceName="+usbDevice.getDeviceName()+"\n");
- sb.append("DeviceId="+usbDevice.getDeviceId()+"\n");
- sb.append("VendorId="+usbDevice.getVendorId()+"\n");
- sb.append("ProductId="+usbDevice.getProductId()+"\n");
- sb.append("DeviceClass="+usbDevice.getDeviceClass()+"\n");
- int deviceClass = usbDevice.getDeviceClass();
- if(deviceClass==0) {
- UsbInterface anInterface = usbDevice.getInterface(0);
- int interfaceClass = anInterface.getInterfaceClass();
- sb.append("device Class 为0-------------\n");
- sb.append("Interface.describeContents()="+anInterface.describeContents()+"\n");
- sb.append("Interface.getEndpointCount()="+anInterface.getEndpointCount()+"\n");
- sb.append("Interface.getId()="+anInterface.getId()+"\n");
- //http://blog.csdn.net/u013686019/article/details/50409421
- //http://www.usb.org/developers/defined_class/#BaseClassFFh
- //通过下面的InterfaceClass 来判断到底是哪一种的,例如7就是打印机,8就是usb的U盘
- sb.append("Interface.getInterfaceClass()="+anInterface.getInterfaceClass()+"\n");
- if(anInterface.getInterfaceClass()==7){
- sb.append("此设备是打印机\n");
- }else if(anInterface.getInterfaceClass()==8){
- sb.append("此设备是U盘\n");
- }
- sb.append("anInterface.getInterfaceProtocol()="+anInterface.getInterfaceProtocol()+"\n");
- sb.append("anInterface.getInterfaceSubclass()="+anInterface.getInterfaceSubclass()+"\n");
- sb.append("device Class 为0------end-------\n");
- }
- sb.append("DeviceProtocol="+usbDevice.getDeviceProtocol()+"\n");
- sb.append("DeviceSubclass="+usbDevice.getDeviceSubclass()+"\n");
- sb.append("+++++++++++++++++++++++++++\n");
- sb.append(" \n");
- }
- textView.setText(sb);
- }
根据不同anInterface.getInterfaceClass()就可以看出来是什么,我已经试出来3是外设,7是打印机,8是U盘,其他的值,你可以根据与自己的需要,插上看看打印是什么。
阅读全文
2 0
- android 检测USB是U盘还是外设
- Android USB 设备如何区分是打印机还是U盘
- Android USB 设备如何区分是打印机还是U盘
- Android代码检测是debug还是release
- Android USB Host U盘
- 电脑是如何识别USB 3.0 U盘的
- Android(安卓)系统USB-OTG-HID外设通讯开发
- Android(安卓)系统USB-OTG-HID外设通讯开发
- 还是U盘
- 还是U盘
- Android + kernel USB host 如何判断插入的设备是高速还是低速的设备
- Android + kernel USB host 如何判断插入的设备是高速还是低速的设备
- USB通讯,检测U盘插入与卸载,并可以写入、读取文件
- 当有U盘或摄像头插进USB口时, 程序如何检测到
- Android USB Host 使用详解(U盘)(一)
- Android USB Host 使用详解(U盘)(二)
- Android USB Host 使用详解(U盘)(三)
- Android USB Host 使用详解(U盘)
- 当加载一个动态库时,可能因为这个动态库依赖于其他的动态库,而加载他的时候找到这个动态库之后默认到系统盘去找其依赖的动态库而导致没有找到其 依赖的动态库。
- HDU 3746 KMP
- IOC容器的简单介绍
- 【QT】QPA
- 定制自己的Unity场景编辑工具界面(一)
- android 检测USB是U盘还是外设
- 面试题
- HDU 2017 多校联赛2 1011 Regular polygon
- CF766E:Mahmoud and a xor trip(树形dp)
- SpringBoot使用Ckediter上传图片
- Unity与ARKit插件实践评测总结
- python基础之list,zip,array的区别
- 计算机视觉----图像底层特征提取之边缘提取(二) Canny算法
- 解决OKHttp3 报OKHTTP javax.net.ssl.SSLHandshakeException错误