android 新人求教
下位機發送 11個位元組 以固定資料開頭 例如 0xfe 0xfe 0xcc 0xc2為開頭 程式里只判斷0xfe 0xfe
中間包括固定的0x00 0x00 0x00 0x01 0x00 0xd5 0xc2
用google的藍牙例子 用 byte&&0xff轉成無符號
但是只在開頭判斷得到了第一個完整資料串 再往后就得不到了
case MESSAGE_READ:
int copyflag = -1;
byte[] rxBuf = (byte[]) msg.obj;
// construct a string from the valid bytes in the buffer
String rxMsg = new String(rxBuf, 0, msg.arg1);
// Log.i("--Read: ", rxMsg+"|"+rxMsg.length()+"|"+rxBuf.length+"|"+((byte[]) msg.obj).length+"|"+msg.arg1);
String tmp_str="";
for(int i=0; i<msg.arg1; i++)
{
if(UByte(rxBuf[i])==0xfe)
{ copyflag=1; tmp_str+=String.valueOf((char)rxBuf[i]);}
else if(UByte(rxBuf[i])==0xfe && copyflag==1)
{ copyflag=2;tmp_str+=String.valueOf((char)rxBuf[i]);}
else if(UByte(rxBuf[i])==0xc2 && copyflag==2)
{ copyflag=3; break;}
if(copyflag==2)
tmp_str+=String.valueOf((char)rxBuf[i]);
}
if(copyflag==3)
Log.i("--Data: ",""+tmp_str);
tmp_str ="";
copyflag =-1;
break;
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/85805.html
標籤:Android
下一篇:QT怎么去回圈執行一段程式?
