Можно ли реализовать тайм-аут в функции inputstream.read() из BluetoothSocket в Android?
Я пробовал использовать Thread.sleep(), но это только приостанавливало мою деятельность.
---Update---
У меня была идея, сделать 2 кода потока здесь (t1 и t2), где каждый поток прерывает другой, один из них (t1) делает сон (5000), затем прерывает другой поток (t2), с другой стороны другой поток (t2), если при чтении входной поток обнаруживает какой-то символ, поскольку 0x0D прерывает другой поток (t1), но вот мой вопрос, кто-нибудь может мне помочь? потому что я не использовал метод прерывания() потоков, я надеюсь, что кто-то может мне помочь, спасибо...
---Обновление---
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();
}
}
}
Это моя реализация, когда что-то приходит в другом потоке, проблема в том, что тайм-аут будет достигнут, если я не получу символ 0x3e из mmInStream.
Я предполагал, что во втором примере я должен использовать notifyAll(), но когда я должен запустить readThread()?
Спасибо, @weeman