2012-03-14 9 views
2

私は、テキストを編集テキストに配信するために、Bluetoothのバーコードリーダーを使用しています。問題は、約半分の時間バーコードテキストをカットし、不完全なテキストを私に届けることです。BluetoothバーコードgetInputStream()

私はクラス "BluetoothSocket"を使用しています。 これは私の読書コードです:

int bytes = socket.getInputStream().read(buffer); 

message = message + new String(buffer, 0, bytes); 

// Send the obtained bytes to the UI Activity 
handler.post(new MessagePoster(textView, message)); 

私はあなたがInputStreamから読み取るために、このようなものを使用することができます長い

+0

あなたの 'buffer'は十分ですか? – pap

答えて

1

このような何かが動作するはずです。文字列が予想される長さになるまで続けてください。私はストリームがちょうど行くと思います。

InputStream stream = socket.getInputStream(); 
StringBuilder builder = new StringBuilder(); 
do { 
    byte [] buffer = new byte[256]; 
    int bytes = stream.read(buffer); 
    builder.append(new String(buffer, 0, bytes)); 
} while ((builder.length() < 10)); 
String completeStr = builder.toString(); 
0

こと)のgetInputStream(のアクションを作るための方法を探しています...

InputStream i = socket.getInputStream(); 
     int c; 
     String message; 
     StringBuffer s = new StringBuffer(""); 
     while((c=i.read())!=-1) 
     { 
      s.append((char)c); 
     } 
     message = s.toString(); 
+0

私は実際に私が探していたものとあなたの提示するものに似たものを見つけました。問題は、メッセージthxにいくつかのパケットがあるので、私は文字列を追加しなかったということでした:) – Gil