0
我正在使用蓝牙串行连接在android应用程序和微控制器之间进行通信。我可以在应用程序和MC之间进行通信。但是我从MC发来的信息分成两部分。例如,如果我通过蓝牙发送$F05,A,B,C,0#
,它会将我的消息分成两部分,内容如下。第一部分是$
,其余部分是F05,A,B,C,0#
。你可以看到我的日志猫输出如下。Bluetooth InputStrem读取两部分的字节
12-24 10:40:19.926 17999-18183/? V/PRAVEEN: $
12-24 10:40:20.027 17999-18183/? V/PRAVEEN: F15,A,0,0,0#
我发送这个消息在整个螺母android分裂成两部分。我的代码是
public void run() {
try{
int bytes;
while (true){
try{
avilableBytes=inputStream.available();
byte[] buffer=new byte[avilableBytes];
if (avilableBytes>0){
bytes=inputStream.read(buffer);
final String readMessage=new String(buffer);
Log.v("PRAVEEN",readMessage);
if (bytes>=3){
bt_handler.obtainMessage(handlerState,bytes,-1,readMessage).sendToTarget();
}
else {
SystemClock.sleep(100);
}
}
}catch (IOException e){
e.printStackTrace();
}
}
}catch (Exception e){
e.printStackTrace();
}
}
请帮助我获取实际发送的字符串。谢谢。
是的,它发生了好几次,有时你会得到像'$ F05',',A,B,C,0#'这样的数据。 –
@NigamPatro是否有解决方法或破解如何实现? –
直到现在我正在寻找,但我们可以做一些类似的事情,我们可以附加一些特殊字符来区分消息块。 –