Реализовать тайм-аут в функции inputstream.read() BluetoothSocket в Android

Можно ли реализовать тайм-аут в функции 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

10
задан kaushik parmar 6 November 2014 в 05:58
поделиться