Пишу приложение для Android, которое принимает данные по bluetooth(картинку jpg), для тестирования использую программу HTerm и bluetooth передатчик. Проблема в том, что при передачи картинки в виде массива байт, не определяется конец передачи данных и метод Inputstream.read(bufer) не возвращает -1 а ждет, что ему еще передадут данные. Подскажите как с этим боротся.
private void methodTest(InputStream is) throws IOException {
// буфер для чтения, разумного объема
byte[] buffer = new byte[1024*64];
// Выходной поток
ByteArrayOutputStream baos = new ByteArrayOutputStream();
// цикл чтения
while (true) {
// читаем данные в буфер
int readBytesCount = is.read(buffer);
Log.d(TAG, "Колличество байт readBytesCount" + readBytesCount);
if (readBytesCount!= -1) {
// данные были считаны - есть, что записать
Log.d(TAG, "Пишем в буфер " + readBytesCount);
baos.write(buffer, 0, readBytesCount);
} else {
// данные закончились
Log.d(TAG, "Данные закончились " + readBytesCount);
baos.flush();
baos.close();
data = baos.toByteArray();
Log.d(TAG, Arrays.toString(data));
Bitmap bitmap = BitmapFactory.decodeByteArray(data , 0, data.length);
imageView.setImageBitmap(bitmap);
return;
}
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
С JSON особо не знаком, но хочу попробовать решить задачу с помощью негоТакая проблема, есть URL на данные, данные выглядят примерно так:
Динамический создаю кнопку, как мне узнать что кнопка создана? Точнее, мне нужно условие (пока кнопка не создана) не делать того-то?