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 回読み取ります