从蓝牙设备读取数据时缓冲缓慢

时间:2016-02-03 09:03:15

标签: java android bluetooth

我每隔10毫秒从蓝牙设备获取22字节数据

现在的问题是缓冲区花费更多时间来读取数据,因此我丢失了设备中的数据

inputStream = btSocket.getInputStream();
byte[] buffer = new byte[22];

 while (inputStream != null ) {
  if (inputStream != null && inputStream.available() > 0) {
        long startTime = System.currentTimeMillis();
        inputStream.read(buffer);
        long stopTime = System.currentTimeMillis();
        Log.e("time to execute code",stopTime - startTime+"");

所以我需要在每次10毫秒之前完成阅读

这是我的Logcat

including @Transactional for instance

1 个答案:

答案 0 :(得分:0)

只读一个字节[]本身就是阻塞。您可能希望使用read(byte[], int offset, int size)仅读取所需的字节。

您可以通过检查其返回值来检查read(byte [])返回的字节数。