3
我正在創建一個應用程序,通過藍牙串口讀取字符串值。我的數據接收但分兩部分。如果我通過藍牙發送$ F00,A,B,0,M#,它只在第一部分中讀取$
,在下一部分中只讀取F00,A,B,0,M#
。我在這裏提供了我的代碼。如果我錯了,請糾正我。Android藍牙輸入流不能讀取完整陣列
InputStream inputStream=null;
int avilableBytes=0;
public ConnectedThread(BluetoothSocket socket){
InputStream temp=null;
try{
temp=socket.getInputStream();
}catch (IOException e){
e.printStackTrace();
}
inputStream=temp;
}
public void run() {
try{
int bytes;
while (true){
try{
avilableBytes=inputStream.available();
if (avilableBytes>0){
byte[] buffer=new byte[avilableBytes];
bytes=inputStream.read(buffer);
final String readMessage=new String(buffer,0,bytes);
bt_handler.obtainMessage(handlerState,bytes,-1,readMessage).sendToTarget();
Log.d("PRAVEEN",readMessage);
}
}catch (IOException e){
e.printStackTrace();
}
}
}catch (Exception e){
e.printStackTrace();
}
}
它不是這樣的,它取決於藍牙,它可以讀取在不同的時間不同的模式。 –
90%的時間我得到了確切的字符串有時會丟失 –
您是否嘗試用我的示例修復代碼? – Majkl