Во-первых, как примечание, HID, как правило, используют прерывание IN, а не массовые передачи. Это НЕ то же самое, что труба управления или наливная труба. Когда вы перемещаете мышь или клавиатуру (обычно), она отправит сообщение о прерывании на ваш компьютер, чтобы ОС не приходилось постоянно опрашивать канал управления для получения отчетов. В андроиде это делается с помощью queue
/ requestWait
.
Лично я никогда не видел HID с объемной трубой.
Все устройства имеют конечную точку 0, которая является каналом двустороннего управления. Если вы контролируете прошивку устройства, вы можете отправлять пользовательские команды на канал управления. Теоретически, вы можете сделать это и использовать один и тот же байтовый массив. Но вам нужно знать, что ожидает ваше устройство с точки зрения идентификатора запроса, индекса и значения. Индекс, вероятно, будет 0 (дескриптор интерфейса; UsbInterface.getId
). Значение также зависит от того, что ожидает ваше устройство (попробуйте 0).
Для справки, вот HID spec.