1

我有一个 USB 设备,我想知道如何从 vendorID 和 DeviceID 中识别“供应商名称”和“设备名称”。

我从 USBManagers 的 DeviceList Hashmap 获得的设备名称看起来无效。

最后我想要的是这样的:

(硅 - 电源 8GB)

4

2 回答 2

4

您可以从以下位置VendorId获取ProductId

UsbDevice.getVendorId();
UsbDevice.getProductId();

您需要将 int 值转换为十六进制并将它们与供应商 ID/产品 ID 列表进行比较。

您可以在此处找到此列表。

我会把解析留给你,但这很简单。您可以在文件顶部找到结构:

# 语法:
# vendor vendor_name
# device device_name <-- 单个选项卡
# interface interface_name <-- 两个选项卡

于 2013-10-29T11:03:12.900 回答
2

在 API 21 中添加了这些方法。就像这里一样简单:

    UsbManager usbManager = (UsbManager) getSystemService(USB_SERVICE);
        if (usbManager != null) {
            HashMap<String, UsbDevice> devices = usbManager.getDeviceList();
            for (String key: devices.keySet()) {
                Log.d(TAG, "Device Name: " + devices.get(key).getDeviceName());
                Log.d(TAG, "Manufacturer Name: " + devices.get(key).getManufacturerName());
                Log.d(TAG, "Product Name: " + devices.get(key).getProductName());
            }
        }

您可以按 vendorId 过滤并打印它。

于 2020-10-22T20:39:40.143 回答