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[])
发送多条消息,例如,当我两次调用函数write
func.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);
    }
}