0

Bluetooth デバイスからデータを受信するためのソケットをセットアップしました。受信バッファは、スレッドを終了する前に 8 バイトのデータを収集するように設定されていますが、バッファはデータの次のバイトを格納するために進みません。バッファを 8 に設定し、バッファがいっぱいになるまでループします。

      private class ConnectedThread extends Thread {

    private final InputStream mmInStream;
    private final OutputStream mmOutStream;

    public ConnectedThread(BluetoothSocket socket) {
        InputStream tmpIn = null;
        OutputStream tmpOut = null;

        // Get the input and output streams, using temp objects because
        // member streams are final
        try {
            tmpIn = btSocket.getInputStream();
            tmpOut = btSocket.getOutputStream();
        } catch (IOException e) { }

        mmInStream = tmpIn;
        mmOutStream = tmpOut;
        }

    public void run() {

        // Keep listening to the InputStream until an exception occurs
        while (true) {
            try {

                InputStream mmInStream = btSocket.getInputStream();

                byte[] readBuffer = new byte[8];
                int read = mmInStream.read(readBuffer);
                while(read != -1){

                    Log.d(TAG,  " SizeRR  " + read);
                     read = mmInStream.read(readBuffer);
                }


            } catch (IOException e) {
                break;
            }
        }
    }

Log.d ( SizeRR 1) は 8 回読み取ります

4

1 に答える 1