Android SDK: как прочитать класс USB-устройства? - PullRequest
4 голосов
/ 04 августа 2011

Я попытался написать примитивное действие для сканирования порта USB и отображения основной информации для подключенного устройства. Я особенно заинтересован в чтении класса устройства, для которого, как мне кажется, 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, такие как подкласс или протокол, также равны 0. Как тогда получить класс устройства?

1 Ответ

3 голосов
/ 04 августа 2011

Класс USB является атрибутом интерфейса, а не устройства.Итерирование интерфейсов работает как положено:

int count = device.getInterfaceCount();
for (int i = 0; i < count; i++) 
{
    UsbInterface iface = device.getInterface(i);
    int cls = iface.getInterfaceClass();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...