1から100MBのデータを1024バイトのチャンクでリモートBluetoothデバイスにプログラムで書き込む必要があります。どちらもアンドロイドデバイスです。ここでは、データを転送するために、私のクライアントプログラムのサンプルコードスニペットである - アンドロイド2.2(フローズンヨーグルト)上のコードのこの部分を実行している間Android BluetoothSocket OutputStream無限にブロックを書き込む
bTSocket.connect(); //connect to remote BT device
DataOutputStream outStream = new DataOutputStream(bTSocket.getOutputStream());
byte[] buffer = new byte[1024];
int bytesToTransfer = 1000000;
while (bytesToTransfer > 0) {
outStream.write(buffer);
outStream.flush();
bytesToTransfer -= 1024;
}
outStream.close();
は、それが正常に動作します。しかし、Android 2.3.4と4.0.4の場合、outStream.write(バッファ)はデータの転送後に無限にブロックされます(たとえば100 KB)。言及すると言えば、リモートデバイスはリスニングデータ用に設定されていません。書き込めるデータの量に制限はありますか?
もう一方の側がソケットからデータを読み取っていないと言っていますか? –
正確には、サーバーはストリームを介してデータを読み取るように構成されていません。 –