Android蓝牙输入流无法连续读取

时间:2015-04-13 21:30:27

标签: android bluetooth

我有以下安卓代码,我正在连接到一个使用蓝牙向我发送连续数据流的设备。在下面的代码中,在获取一些数据之后,即使仍然建立了蓝牙连接并且设备正在发送数据,我也无法再读取任何数据。

我开始收到以下错误 信息:流阅读器中的错误:bt socket关闭,读取返回:-1

private void readStreamDataInSeparateThread()
    {
        new Thread(new Runnable() {
            @Override
            public void run() {
                while(inputStream != null && isConnected())
                {
                    try
                    {
                        byte[] buffer = new byte[1024];
                        int readCount =  inputStream.read(buffer); 
                        System.out.println("Info: ReadCount:"+readCount);
                        if(readCount > 0)
                            byteBuffer.add(buffer,0,readCount);
                        else
                        {   
                            if(time_out_counter >= TIME_OUT)
                            {
                                closeConnection();
                                break;
                            }
                            time_out_counter++;
                            System.err.println("Info: error end of stream reached for stram reader");
                        }
                        Thread.sleep(50);
                    }catch(IOException e){
                        System.err.println("Info: error in stream reader:"+e.getMessage());
//                      closeConnection();
                    }
                    catch(InterruptedException e){}
                }
                System.out.println("Info: stream stoped reading ");
            }
        }).start();
    }

但奇怪的是,如果我保持我的设备&#c; c(三星标签3 neo)wifi打开并连接,那么我没有收到任何错误。 此外,如果我将时间延迟增加到超过6秒,那么我很长时间都不会收到此错误。

请让我知道,如果有人能够解决问题或给我一些指示

0 个答案:

没有答案