Я хочу отправить короткий пакет данных (всего 2 символа) через bulkTransfer на камеру, подключенную через USB. Я использую Samsung Galaxy S2 с Android 4.0.3 в качестве хоста. Кажется, все в порядке, примите... на самом деле данные не отправляются. Теоретически метод bulkTransfer возвращает положительное значение, означающее, что данные были переданы, но видимого эффекта нет. Код выглядит следующим образом:
char ch = (char)34;
char[] record = {'P',ch};
String r = record.toString();
byte[] bytes = r.getBytes(Charset.forName("ASCII"));
int TIMEOUT = 10000;
boolean forceClaim = true;
UsbManager mUsbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
UsbInterface intf = device.getInterface(0);
for (int i = 0; i < intf.getEndpointCount(); i++) {
UsbEndpoint ep = intf.getEndpoint(i);
if (ep.getType() == UsbConstants.USB_ENDPOINT_XFER_BULK) {
if (ep.getDirection() == UsbConstants.USB_DIR_OUT) {
endpoint = ep;
//Integer dir = endpoint.getDirection();
UsbDeviceConnection connection = mUsbManager.openDevice(device);
if(connection!=null){devMessage+=" I connected";}
connection.claimInterface(intf, forceClaim);
Integer res = connection.bulkTransfer(endpoint, bytes, bytes.length, TIMEOUT);
if (res>0){devMessage += "some data transfered.";}
connection.releaseInterface(intf);
break;
}
}
Есть ли что-то еще, что мне нужно добавить, прежде чем я начну массовую передачу? Есть ли необходимость в controlTransfer перед запуском bulkTransfer? Есть ли что-то еще, что я мог забыть. Пожалуйста, имейте в виду, так как это мое первое приложение с USB-подключением, и в сети не так много ресурсов. Я уже прочитал все о хосте usb на сайте developer.android... поэтому, пожалуйста, не направляйте меня туда. Большое спасибо за любую помощь.