我已经成功地使用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更改为位图,并尝试从位图在imageView
对象上设置图像。