У меня есть RFID-устройство USB, которому нужно отправить команду для устранения зеленой лампочки, когда она подключена.
Уже написан код на языке C с использованием libusb_control_transfer()
. Это прекрасно работает с этой реализацией. Мне нужно реализовать то же самое из приложения android, используя java.
. Для этого я использовал usbDeviceConnection.controlTransfer()
с той же командой (используется в C), как только я получу уведомление, когда USB-устройство подключено в. Но он возвращает -1, когда я выполняю в Android.
byte [] command = new byte[]{/* byte command.*/};
int usbResult = usbDeviceConnection.controlTransfer(0x21, 32, 0, 0, command, command.length, 15000);
Является ли предпочтительным API-интерфейс для выполнения той же операции, которую выполняет libusb_control_transfer()
?. Нужно ли изменить указанную выше команду для поддержки android?
Обратите внимание, что в этом оборудовании UsbDevice
содержит один UsbInterface
и один UsbEndpoint
типа android.hardware.usb.UsbConstants#USB_ENDPOINT_XFER_INT
.