收到蓝牙字符串的问题

时间:2018-10-30 13:55:17

标签: java android bluetooth

我正在尝试从数字天平接收蓝牙消息 我这样做

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

在图像上您会看到一个绿色标记,这是我应该收到的全部信息,但有时只是重量而已或一无所获,我将另一个应用程序连接到数字天平后,信息就完成了。所以平衡不是我想的问题。

感谢您的阅读和帮助。再见

1 个答案:

答案 0 :(得分:0)

尝试使用“令牌”,以便让android端知道命令/字符串已结束。例如:在向andorid myString发送命令时,将其作为myString \ r \ n发送并在您的android设备上进行解析。您似乎遇到的问题与未刷新蓝牙设备/模块缓冲区有关