0

私のPCでサーバーを起動して、Bluetooth経由でバイトをAndroidフォンに送信します。同じ出力ストリームを使用して、10 秒ごとに異なるバイトを送信しています。

outputStream.write(buffer);
outputStream.flush();
thisThread.sleep(10000);

buffer は、ループごとに変更される bytearray です

今、私は Android Phone のバッファを読みたい:

while((bytes = inputStream.read(buffer)) != -1) {
  //do something
}
//do more

私の問題は、read(buffer) が -1 を返さないことです。バイトが転送されたことをAndroid Phoneに通知して、whileループの後にやりたいことを実行するにはどうすればよいですか?

4

2 に答える 2

2

PC側で接続を閉じてみましたか?あなたの例から、そうではないようです。

[編集] PC側で接続を閉じたくない場合は、PC側がデータの送信を終了したことをandoridアプリに示す既知のバイトシーケンスを送信します。応答を待っています

于 2012-04-18T19:13:49.497 に答える
0

これを試して...

while((bytes = inputStream.read(buffer)) > 0)
{
//
}
于 2012-04-18T18:38:59.210 に答える