Я установил соединение Bluetooth, используя теперь классический код Google Bluetooth Chat. Однако у меня есть вопрос, который я просто не могу обернуть вокруг себя.
Чтение входного потока происходит примерно так:
public void run() {
byte[] buffer = new byte[1024]; // buffer store for the stream
int bytes; // bytes returned from read()
// Keep listening to the InputStream until an exception occurs
while (true) {
try {
// Read from the InputStream
bytes = mmInStream.read(buffer);
// Send the obtained bytes to the UI Activity
mHandler.obtainMessage(MESSAGE_READ, bytes, -1, buffer)
.sendToTarget();
} catch (IOException e) {
break;
}
}
}
Хорошо, если бы я просто распечатывал символы, которые получил, как в оригинальном примере. Однако предположим, что я хотел передать файл изображения. Я не знаю размер файла, поэтому я не могу сосчитать полученные байты или что-то в этом роде. В моих тестах я, кажется, никогда не получал «-1» из входного потока, что представляется «нормой» для чтения из входных потоков. Так как я могу узнать, что достиг конца отправляемого файла?
Спасибо за вашу помощь и ваше время.