Мне удалось использовать отправку по небольшой строке через соединение Bluetooth с помощью Bluetooth API , проблема, с которой я сталкиваюсь, это отправка поверх большого изображения.
В настоящее время в качествеклиент Я отправляю код через сокет с использованием базового API сокета
mmOutStream.write("HEY IM A STRING".getBytes());
Я буду отправлять поверх изображения, которое я изменил на байтовый массив.Когда я получил байтовый массив, я знаю, что реализовал его правильно, так как получение строки будет печататься правильно.
mmBuffer = new byte[100000];
int numBytes; // bytes returned from read()
while (true) { // TODO REMOVE TRUE
try {
// read from inputStream
numBytes = mmInStream.read(mmBuffer);
System.out.println("-------------------------------------------------WE RECEIVED");
System.out.println(numBytes);
byte[] received = Arrays.copyOfRange(mmBuffer, 0, numBytes + 1);
//byteArrayToBitMap(received);
System.out.println(new String(received));
} catch (IOException e) {
break;
}
}
}
Проблема заключается в том, что когда я отправляю большое изображение, сервер получаетих в 990 байтовых кусках, которые я отладил из простого чтения выходных данных System.out.println(numBytes);
.Что мне делать в этом случае, когда мне нужно отправить что-то большое?Изображение, которое я отправляю, преобразуется в массив byteArray из растрового изображения.Следовательно, byteArrayToBitmap
закомментировано в настоящее время, но метод изменяет byteArray на Bitmap и пытается установить изображение для объекта imageView
из битовой карты.