前言
由于PCIE接口的4G模块是以USB驱动可以通过阅读安卓系统来驱动VID
、PID
识别当前使用的4G模块型号。
尝试使用过shell命令被识别,但在不同的安卓系统下,有些lsusb直接支持命令,有些需要busybox有些人不支持使用工具箱的命令。系统差异很大,考虑到兼容性,放弃使用。
代码
private void testRecognizeModule() { UsbManager usbManager = (UsbManager) getSystemService(Context.USB_SERVICE); HashMap<String, UsbDevice> deviceList = usbManager.getDeviceList(); Iterator<UsbDevice> deviceIterator = deviceList.values().iterator(); List<UsbDevice> usbDevices = new ArrayList<>(); while (deviceIterator.hasNext()) { UsbDevice device = deviceIterator.next(); int VID = device.getVendorId(); int PID = device.getProductId(); // 若需要识别其他模块型号,请自行增加逻辑代码进行判断 if (VID == 0x2c7c && PID == 0x0125) { Log.i("alderaan", "检测到移远4G模块EC25..."); break; } else if (VID == 0x05c6 && PID == 0xf601) { Log.i("alderaan", "检测到美格4G模块SLM750..."); break; } else if (VID == 0x2cb7 && PID == 0x0001) { Log.i("alderaan", "检测到
广和通4G模块L718..."); break; } else if (VID == 0x1782 && PID == 0x4d11) { Log.i("alderaan", "检测到广和通4G模块L610..."); break; } else { Log.i("alderaan", "VID:" + String.format("%04x", device.getVendorId()) + " PID:" + String.format("%04x", device.getProductId())); } } }