编写了一个蓝牙通讯的上位机,和单片机通讯,目前用串口通讯助手测试的时候发现,每次给蓝牙串口发一个大串数据的时候,手机上接收到的总是分段显示
比如我发一个“123456789123456789123456789”
手机上接收到则显示“12345”“67891234”“567891”“23456789”等类似的数据,有时候还会丢数据。。。
这是接收到的数据 我直接输出在LogCat上的显示一段一段的
以下是代码
写了一个线程 线程来 处理 Input数据流 然后用hanler.message把数据发送到handler进行打印或者显示 界面还有一个按钮 开控制线程的开始
//handler处理数据
Handler revhandler = new Handler(){
public void handleMessage(android.os.Message msg) {
byte[] writeBuf = (byte[]) msg.obj;
String writeMessage = new String(writeBuf,0,msg.arg1);
textV.setText(writeMessage);
System.out.println("---->>>"+writeMessage);
};
};
//接收线程
private class receivethread extends Thread{
private final BluetoothSocket mmSocket;
private final InputStream mmInStream;
public receivethread(BluetoothSocket socket) {
mmSocket = socket;
InputStream tmpIn = null;
try {
tmpIn = socket.getInputStream();
} catch (IOException e) {
Log.e(TAG, "temp sockets not created", e);
}
mmInStream = tmpIn;
}
@Override
public void run() {
byte[] buffer = new byte[1024];
int bytes;
// TODO 自动生成的方法存根
try {
while ((bytes = mmInStream.read(buffer))!=-1) {
revhandler.obtainMessage(1, bytes, -1, buffer).sendToTarget();
}
}
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}}
求各位大神指导!!