たとえば1〜100MBのデータを1024バイトのチャンクでリモートBluetoothデバイスにプログラムで書き込む必要があります。どちらもAndroidデバイスです。これは、データを転送するためのクライアントプログラムのサンプルコードスニペットです– </ p>
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();
このコードをAndroid2.2(Froyo)で実行している間は、正常に動作します。ただし、Android 2.3.4および4.0.4の場合、outStream.write(buffer)は、一部のデータ(たとえば、100 KB)の転送後に無限にブロックします。言及する価値があるのは、リモートデバイスがデータをリッスンするように構成されていないことです。書き込み可能なデータ量に制限はありますか?