是否有可能在Android上的BluetoothSocket实现的inputstream.read()函数超时?
我已经使用Thread.sleep()方法尝试,但这种仅停留我的活动。
---更新---
我有一个想法,使2个线程代码herereads(T1&T2),其中每个线程中断等,他们(T1)做一个睡眠(5000)则中断其他线程(T2),在另一侧的线程(之一T2)如果该InputStream读取检测到某些字符作为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();
}
}
}
这是我实现的时候出现一些这样在不同的线程,问题是,如果我不得到德mmInStream的0x3E的字符超时将达到。
我推测,在第二个例子我必须使用notifyAll的(),但是,当我不得不开始readThread()?
谢谢你,@weeman