我正在尝试从数字天平接收蓝牙消息 我这样做
private class ConnectedThread extends Thread
{
private final InputStream mmInStream;
private final OutputStream mmOutStream;
ConnectedThread(BluetoothSocketWrapper socket)
{
InputStream tmpIn = null;
OutputStream tmpOut = null;
try
{
tmpIn = socket.getInputStream();
tmpOut = socket.getOutputStream();
} catch (IOException e) {
e.printStackTrace();
}
mmInStream = tmpIn;
mmOutStream = tmpOut;
}
public void run()
{
try{
int bytes;
while (true) {
try {
int availableBytes = mmInStream.available();
byte[] buffer = new byte[availableBytes];
if (availableBytes > 0){
bytes = mmInStream.read(buffer);
String readMessage = new String(buffer, 0, bytes);
// Envia los datos obtenidos hacia el evento via handler
int finalBytes = bytes;
if (bytes>=3){
bluetoothIn.obtainMessage(handlerState, finalBytes, -1, readMessage).sendToTarget();
}else{
SystemClock.sleep(100);
}
}
} catch (IOException e) {
break;
}
}
}catch (Exception er){
er.printStackTrace();
}
// Se mantiene en modo escucha para determinar el ingreso de datos
}
我的问题是我收到的消息。 enter image description here
在图像上您会看到一个绿色标记,这是我应该收到的全部信息,但有时只是重量而已或一无所获,我将另一个应用程序连接到数字天平后,信息就完成了。所以平衡不是我想的问题。
感谢您的阅读和帮助。再见
答案 0 :(得分:0)
尝试使用“令牌”,以便让android端知道命令/字符串已结束。例如:在向andorid myString发送命令时,将其作为myString \ r \ n发送并在您的android设备上进行解析。您似乎遇到的问题与未刷新蓝牙设备/模块缓冲区有关