0
デバイスから読み取った後に書き込みたい(Bluetoothソケット経由) 問題は、ソケットが閉じられたときにwhile(true)が終了して再度書き込めないことです。Bluetoothソケットを読み取った後に出力ストリームを書き込む
これはコードです:
try {
// This will block until it succeeds in connecting to the device
// through the bluetoothSocket or throws an exception
bluetoothSocket.connect();
try {
connectingThread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
outstream = bluetoothSocket.getOutputStream();
outstream.write("P".getBytes());
instream = bluetoothSocket.getInputStream();
byte[] buffer = new byte[128]; // buffer store for the stream
int bytes; // bytes returned from read()
String readMessage = "";
// Keep listening to the InputStream until an exception occurs
while (true) {
try {
// Read from the InputStream
bytes = instream.read(buffer);
if(bytes!= -1){
// Send the obtained bytes to the UI activity
readMessage = new String(buffer, 0, bytes);
arrayList.add(readMessage);
biodyMsg = TextUtils.join("", arrayList);
}
} catch (Exception e) {
Log.d("Read Error", e.toString());
}finally {
outstream = bluetoothSocket.getOutputStream();
outstream.write("F".getBytes());
}
break;
}
} catch (IOException connectException) {
connectException.printStackTrace();
try {
bluetoothSocket.close();
} catch (IOException closeException) {
closeException.printStackTrace();
}
}
は、あなたが私を助けることができる
申し訳ありませんが、例外を置いてください:java.io.IOException:壊れたパイプ –
したがって、ピアは接続をリセットしました。あなたの質問は何ですか? – EJP
接続をリセットする前に書き込むことができますか?私は読んだ後に "F"を送信したい –