Я разработал два USB-устройства разных классов, которые можно подключить к телефону Android через концентратор. Они оба распознаются, и как только разрешения предоставлены, я могу получить доступ к ним обоим. Один использует только массовые конечные точки, а другой использует только контрольные передачи. Мои программы Android могут без проблем общаться на обоих этих устройствах.
Я решил поместить обе функции в одно USB-устройство как композитное USB-устройство с двумя интерфейсами. Это экономит недвижимость и электроэнергию на стороне оборудования. Это составное устройство правильно подключается к ПК, и драйверы загружаются правильно.
Когда я подключаю это композитное устройство к Android, я могу получить разрешение для этого устройства. Затем я могу использовать основные конечные точки, связанные с интерфейсом 1. Я могу читать дескрипторы на интерфейсе управления. Тем не менее, я не могу читать или писать успешно в класс на интерфейсе 2 через интерфейс управления.
Я знаю, что интерфейс управления работает, потому что я могу обнаружить команды класса из встроенного программного обеспечения устройства. Таким образом, похоже, проблема с разрешениями.
После прочтения документации Android я не смог понять, как запросить разрешение для второго (и дополнительного) класса интерфейса.
Кто-нибудь знает, как получить такое разрешение? Или, может быть, я ошибаюсь по поводу причины, и причина такого поведения другая?
Большое спасибо.