Android:通过UsbManager识别当前4G模块型号(PCIE接口)

前言

由于PCIE接口的4G模块是以USB的方式进行驱动,为此可以通过读取安卓系统下的VIDPID来识别当前使用的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()));
        }
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值