2012-04-18 25 views
0

私のPCでBluetoothを使ってバイトをAndroid端末に送信するサーバを起動します。 同じOutputstreamを使用して10秒ごとに異なるバイトを送信しています。Java/Android - Inputstreamから読み取った後にOutputstreamに書き込む

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

今私は、Android携帯上のバッファを読みたいすべてのループ

を変更したByteArrayいるバッファ:

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

私の問題は今、その読み込み(バッファ)のdoesntのリターンです - 1。 Androidの電話にバイトが転送されたことを通知する方法はありますか? whileループ後に必要なものはありますか?

+0

私はこのような問題を解決するオブジェクトストリームを好む – sherif

+0

これまでに聞いたことがないobjectstreamで試みたことはありません。だから私はオブジェクトに私のbytearrayを変換し、ObjectOutputStream.writeObject(オブジェクト)を呼び出す必要がありますか? – tschakkkiiiii

+0

ObjectStreamsは、Javaについての最も良い考えの1つです。あなたのクラスはシリアライズ可能なインターフェイスを実装しなければなりません(その形式だけでは機能はありません)。次にObjectOutputStreamを作成します:新しいObjectOutputStream(someOtherStream)thats http://tutorials.jenkov.com/java-io/objectoutputstream.html – sherif

答えて

0

はこれを試して...

while((bytes = inputStream.read(buffer)) > 0) 
{ 
// 
} 
+0

doesnt work – tschakkkiiiii

2

を使用すると、PC側の接続をクローズしようとしたことがありますか?あなたの例から、そうではないように見えます。

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

+0

閉めようとしましたが、どちらもうまくいきませんでした。また、私はそれを閉じたくない。最後に、私はあなたが示唆したような既知のシーケンスでそれを作った。 – tschakkkiiiii

関連する問題