Как прочитать все байты вместе через Bluetooth?

У меня есть приложение, которое использует bluetooth для получения некоторых данных (байтов) с другого устройства. все идет хорошо, но у меня небольшая проблема с получением всех байтов. После получения байтов я показываю их на тосте, просто чтобы проверить их. Когда другое устройство отправляет вместе 10 байтов (например: «ABCDEFGHIJ»), программа возьмет только первый байт «A» и покажет его в тосте, затем перейдет ко второй итерации и прочитает остальные 9 байтов и покажет « BCDEFGHIJ "на тосте. Вот мой код:

byte[] buffer = new byte[1024]; // Read 1K character at a time.
int bytes = 0; // Number of bytes.

while(true)
{
    try
    {
        // Read from the InputStream.
        bytes = bInStream.read(buffer);

        // Send the obtained bytes to the MainActivity.
        mainActivityHandler.obtainMessage(MainActivity.MESSAGE_READ, bytes, -1, buffer).sendToTarget();
    }
    catch(IOException e)
    {
        connectionLost();
        break;
    }
}

В MainActivity у меня есть:

// The Handler that gets information back from the BluetoothManager.
private final Handler handler = new Handler()
{
    @Override
    public void handleMessage(Message msg)
    {
        switch(msg.what)
        {
            case MESSAGE_READ:
                byte[] readBuf = (byte[]) msg.obj;

                // construct a string from the valid bytes in the buffer.
                String readMessage = new String(readBuf, 0, msg.arg1);
                Toast.makeText(MainActivity.this, readMessage, Toast.LENGTH_SHORT).show();
                break;

            // ...
        }
    }
};

Как я могу получить все байты вместе ?!

11
задан Eng.Fouad 10 February 2012 в 16:56
поделиться