Я пытаюсь отправлять и получать данные через USB, мое устройство, Acer Iconia A500 имеет все необходимое для подключения к устройству и всему, что хорошо и работает правильно, но когда я пытаюсь отправить и получить данные, t ведут себя так, как ожидалось. Это мой код
for( ; ; ) { //this is the main loop for transferring   
    String get = "$getPos";
    byte[] getBytes = get.getBytes();
    conn.bulkTransfer( epOUT, getBytes, getBytes.length, 500 );
    try {
        Thread.sleep( 500 );
        byte[] buffer = new byte[4096];
        conn.bulkTransfer( epIN, buffer, 4096, 500 );
        StringBuilder byStr = new StringBuilder();
        for( int i = 0; i < buffer.length; i++ ) {
            if( buffer[i] != 0 ) {
                byStr.append( buffer[i] + ", " );
            }
        }
        l( byStr );
    }
    catch( InterruptedException e ) {
        e.printStackTrace();
    }
    if( mStop ) {
        mStopped = true;
        return;
    }
    l( "sent " + counter );
    counter++;
    counter = (byte)( counter % 16 );
}
Он предназначен для возврата массива из байтов длиной около 80 символов, но он возвращает только два байта назад, которые равны 1 и 96, если на USB-устройствах была ошибка, он все равно вернет еще несколько, а затем два. Является ли мой код даже близким к правильному? Я основывал его на USB файле на серийной статье по серверу.