安卓SDK : how to read a USB device's class?

标签 android usb

我已经尝试编写用于扫描 USB 端口和显示所连接设备的基本信息的原始 Activity 。我对阅读设备类特别感兴趣,我相信UsbDevice.getDeviceClass ()方法适用于。这是它的样子:

HashMap<String, UsbDevice> deviceList = findUsbDevices();
    Iterator<UsbDevice> deviceIterator = deviceList.values().iterator();
    if (deviceIterator.hasNext())
    {
        UsbDevice device = deviceIterator.next();
        String name = device.toString();
        String cls = Integer.toString(device.getDeviceClass());
        displayDeviceInfo(name, cls);
    }

但是,它没有按预期工作,为我连接的任何设备提供 0。 UsbDevice 对象的许多其他字段,如子类或协议(protocol),也为 0。那么我如何获得设备类?

最佳答案

USB class是interface的属性,不是device。迭代接口(interface)按预期工作:

int count = device.getInterfaceCount();
for (int i = 0; i < count; i++) 
{
    UsbInterface iface = device.getInterface(i);
    int cls = iface.getInterfaceClass();
}

关于安卓SDK : how to read a USB device's class?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6937834/

相关文章:

java - 如何将xml扩充为 fragment 类?

usb - 与 Xilinx Atlys 板的外部 USB 设备接口(interface)

java - 尝试使用 usb4java 高级库

android - USB主机和USB附件有什么区别?

linux - 我想在没有硬件的情况下运行基于 Linux 的设备应用程序

android - 监听 onDownloadComplete Exoplayer

android - Kotlin 和 Android Studio - Unresolved reference : FirebaseInstanceId

java - 如何在 Android 上显示 GoogleMap v2

Android Studio 无法检测到三星 S5

android - 如何通过 Windows 7 在三星 gts5360 设备上调试 Android 应用程序