Я хочу отправить короткий пакет данных (всего 2 символа) через bulkTransfer на камеру, подключенную через USB. Я использую Samsung Galaxy S2 с Android 4.0.3 в качестве хоста. Все кажется прекрасным, согласитесь ... на самом деле данные не отправляются. Теоретически метод bulkTransfer возвращает положительное значение, то есть данные переносятся, но видимого эффекта нет. Код выглядит следующим образом:Unsuccessful bulkTransfer - Android 4.0.3
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 ... поэтому, пожалуйста, не направляйте меня туда. Большое спасибо за любую помощь.