Android outputStream.write发送多条消息
是否有一种方法可以使用Android outputStream.write发送多条消息,android,bluetooth,Android,Bluetooth,是否有一种方法可以使用OutputStream.write(bytes[])发送多条消息,例如,当我两次调用函数writefunc.write(“hi”);写一封信(“你好吗”),我收到的消息“concateneted”如下:“你好吗”,但我想要两条不同的消息,有没有办法不在我的消息中使用分隔符,我的意思是知道其他设备何时收到消息,这是我的代码(android蓝牙示例): 电话: 在每个消息部分之后 public void write(byte[] buffer) { try {
OutputStream.write(bytes[])
发送多条消息,例如,当我两次调用函数writefunc.write(“hi”);写一封信(“你好吗”)
,我收到的消息“concateneted”如下:“你好吗”
,但我想要两条不同的消息,有没有办法不在我的消息中使用分隔符,我的意思是知道其他设备何时收到消息,这是我的代码(android蓝牙示例):
电话:
在每个消息部分之后
public void write(byte[] buffer) {
try {
mmOutStream.write(buffer);
//send what is already in buffer
mmOutStream.flush();
// Share the sent message back to the UI Activity
mHandler.obtainMessage(BluetoothChat.MESSAGE_WRITE, -1, -1, buffer)
.sendToTarget();
} catch (IOException e) {
Log.e(TAG, "Exception during write", e);
}
}
从:
- 刷新() (刷新此输出流并强制写入任何缓冲输出字节。刷新的一般约定是调用它表示,如果先前写入的任何字节已通过输出流的实现进行缓冲,则应立即将这些字节写入其预期目标
Flush并没有解决我的concatation问题。是否有其他解决方案。如果您正在为接收端编写代码,可能会添加一个类似回车的消息终止符字节。在代码的接收端查找该字节,您就会知道这些消息之间存在拆分。
mmOutStream.flush()
public void write(byte[] buffer) {
try {
mmOutStream.write(buffer);
//send what is already in buffer
mmOutStream.flush();
// Share the sent message back to the UI Activity
mHandler.obtainMessage(BluetoothChat.MESSAGE_WRITE, -1, -1, buffer)
.sendToTarget();
} catch (IOException e) {
Log.e(TAG, "Exception during write", e);
}
}