我有一个 USB 设备,我想知道如何从 vendorID 和 DeviceID 中识别“供应商名称”和“设备名称”。
我从 USBManagers 的 DeviceList Hashmap 获得的设备名称看起来无效。
最后我想要的是这样的:
(硅 - 电源 8GB)
我有一个 USB 设备,我想知道如何从 vendorID 和 DeviceID 中识别“供应商名称”和“设备名称”。
我从 USBManagers 的 DeviceList Hashmap 获得的设备名称看起来无效。
最后我想要的是这样的:
(硅 - 电源 8GB)
您可以从以下位置VendorId
获取ProductId
:
UsbDevice.getVendorId();
UsbDevice.getProductId();
您需要将 int 值转换为十六进制并将它们与供应商 ID/产品 ID 列表进行比较。
您可以在此处找到此列表。
我会把解析留给你,但这很简单。您可以在文件顶部找到结构:
# 语法:
# vendor vendor_name
# device device_name <-- 单个选项卡
# interface interface_name <-- 两个选项卡
在 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 过滤并打印它。