Android의 BluetoothSocket에서 inputstream.read() 함수에 시간 제한을 구현할 수 있습니까?Android에서 BluetoothSocket inputstream.read()에서 시간 초과 구현
Thread.sleep()을 사용해 보았지만 활동이 일시 중지되었습니다.
--- 업데이트 --- 내가 생각을했다
, 다른, 그들 중 하나 (T1) 인터럽트 각 스레드가 슬립 (5000) 할 2 스레드 코드 herereads (T1 & T2)를 중단합니다 다른 스레드 (t2), 다른 스레드에서 다른 스레드 (t2) 읽을 경우 inputstream 다른 스레드 (t1), 0x0D 중단 같은 일부 문자를 검색하지만 여기에 내 질문은, 아무도 나를 도울 수 있습니까? 내가 스레드의 인터럽트() 메소드를 사용하지 않았기 때문에, 나는
이 가 이--- 업데이트 ---이 내 구현
public void run(){
while(true){
try {
char r;
String respuesta = "";
while (true) {
r = (char) mmInStream.read();
respuesta += r;
if (r == 0x3e) {
break;
}
}
respuesta = respuesta.replaceAll(" ", "");
Log.d("respuesta", respuesta);
rHandler.obtainMessage(MESSAGE_READ, -1, -1, respuesta).sendToTarget();
} catch (IOException readException) {
Log.e("ServicioGeneral", "Error de lectura", readException);
this.interrupt();
connectionLost();
// posibly break();
}
}
}
입니다 뭔가가 올 때 ... 감사합니다, 누군가가 나를 도울 수 있기를 바랍니다 다른 스레드에서 문제는 mmoutStream에서 0x3e 문자를 얻지 못하면 시간 초과에 도달한다는 것입니다.
두 번째 예제에서 notifyAll()을 사용해야한다고 가정했는데, 언제 readThread()를 시작해야합니까?
는
API가 실행되는 한, 나는 그렇게하는 방법을 발견하지 못했습니다 ... 아마도 그것을 할 수있는 반사적 인 방법이 있습니다 ...!? – TacB0sS
Bluetooth 소켓과 inputstream 모두 시간 제한을 구현할 방법이 없습니다. 그게 내 문제는 내가 스레드와 처리기를 시도했지만 아직 구현할 수 없습니다 ... 답변을 주셔서 감사합니다 –
문자열에서 공백을 억제하기 위해 "트림()"대신 "replaceAll (" "," ")" –