Android: Outputstream.write - выпуск - PullRequest
       5

Android: Outputstream.write - выпуск

3 голосов
/ 16 марта 2011

Я пытаюсь передать файл на удаленное устройство Bluetooth, как указано ниже

    while (availableBytes > 0 ) {

                 bytesRead = inStream.read(tempData,0,tempData.length);

                 mmOutStream.write(tempData,0,bytesRead);  
                 mmOutStream.flush();
                 availableBytes = inStream.available();
    }/* End of availableBytes */

Во время записи для большого файла (500 КБ) я получаю исключение ввода-вывода как «IOException: Время соединения истекло«после 12 до 15 мин.Когда я отправляю небольшой файл размером <100 КБ, я успешно передаю.Я не закрываю сокет во время передачи файла.Есть ли в Android какие-либо ограничения на то, что разъем Bluetooth может быть активен только в течение определенного фиксированного периода времени? </p>

Пожалуйста, выскажите свое мнение по этому

1 Ответ

1 голос
/ 16 марта 2011

InputStream.available () не делает то, что вы думаете, он делает:

Возвращает количество байтов, которые могут быть прочитанным (или пропущенным) из этого входной поток без блокировки следующий вызывающий метод для этого ввода поток.

Правильный подход - писать до тех пор, пока вы не нажмете bytesRead == -1, сигнализируя об EOF (конец файла).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...