Android蓝牙速度问题

时间:2015-03-23 12:46:54

标签: android bluetooth

我正在开发一个客户端应用程序,用于通过SPP(RFCOMM频道)从CSR板读取数据。为此,我使用了Android SDK(蓝牙聊天)中的示例应用程序,它适用于少量数据。但是当我将音乐从电路板流式传输到设备时,会出现延迟。我测量了while循环中的延迟,我们从连接到蓝牙插座的InputStream读取,并注意到一个有趣的时刻 - 延迟对于循环的一些迭代很大,但对于其他延迟非常小 - 如0-10 ms。也许有人知道它为什么会发生?我该如何解决这个问题呢?

这是一段代码:

public void run() {
            Log.i(TAG, "BEGIN mConnectedThread");
            byte[] buffer = new byte[2048];

            // Keep listening to the InputStream while connected
            while (true) {
                try {
                    // Read from the InputStream
                    int byteCount = mmInStream.read(buffer);

                    Log.d("unique_time", (System.currentTimeMillis() - lastTime) + " " + byteCount);
                    lastTime = System.currentTimeMillis();
                } catch (IOException e) {
                    Log.e(TAG, "disconnected", e);
                    connectionLost();
                    break;
                }
            }
        }

示例日志(第一个数字 - 以ms为单位的增量时间,第二个 - 读取字节):

03-23 14:45:16.481  24432-25373/coderivium.sbctest D/unique_time﹕ 491 884
03-23 14:45:16.491  24432-25373/coderivium.sbctest D/unique_time﹕ 2 140
03-23 14:45:16.491  24432-25373/coderivium.sbctest D/unique_time﹕ 8 884
03-23 14:45:19.481  24432-25373/coderivium.sbctest D/unique_time﹕ 2985 884
03-23 14:45:19.491  24432-25373/coderivium.sbctest D/unique_time﹕ 7 884
03-23 14:45:19.491  24432-25373/coderivium.sbctest D/unique_time﹕ 2 214
03-23 14:45:19.501  24432-25373/coderivium.sbctest D/unique_time﹕ 12 884
03-23 14:45:19.501  24432-25373/coderivium.sbctest D/unique_time﹕ 2 140
03-23 14:45:19.511  24432-25373/coderivium.sbctest D/unique_time﹕ 7 884
03-23 14:45:19.511  24432-25373/coderivium.sbctest D/unique_time﹕ 1 74
03-23 14:45:19.531  24432-25373/coderivium.sbctest D/unique_time﹕ 21 884
03-23 14:45:19.531  24432-25373/coderivium.sbctest D/unique_time﹕ 2 140
03-23 14:45:19.551  24432-25373/coderivium.sbctest D/unique_time﹕ 11 884
03-23 14:45:19.551  24432-25373/coderivium.sbctest D/unique_time﹕ 6 884
03-23 14:45:19.561  24432-25373/coderivium.sbctest D/unique_time﹕ 7 884
03-23 14:45:19.561  24432-25373/coderivium.sbctest D/unique_time﹕ 1 214
03-23 14:45:19.571  24432-25373/coderivium.sbctest D/unique_time﹕ 11 884
03-23 14:45:19.581  24432-25373/coderivium.sbctest D/unique_time﹕ 6 884
03-23 14:45:19.581  24432-25373/coderivium.sbctest D/unique_time﹕ 1 214
03-23 14:45:19.591  24432-25373/coderivium.sbctest D/unique_time﹕ 7 884
03-23 14:45:19.591  24432-25373/coderivium.sbctest D/unique_time﹕ 6 884
03-23 14:45:19.591  24432-25373/coderivium.sbctest D/unique_time﹕ 2 214
03-23 14:45:19.601  24432-25373/coderivium.sbctest D/unique_time﹕ 7 884
03-23 14:45:19.661  24432-25373/coderivium.sbctest D/unique_time﹕ 57 884
03-23 14:45:19.661  24432-25373/coderivium.sbctest D/unique_time﹕ 2 214
03-23 14:45:19.671  24432-25373/coderivium.sbctest D/unique_time﹕ 6 884
03-23 14:45:19.671  24432-25373/coderivium.sbctest D/unique_time﹕ 6 884
03-23 14:45:19.681  24432-25373/coderivium.sbctest D/unique_time﹕ 2 214
03-23 14:45:19.681  24432-25373/coderivium.sbctest D/unique_time﹕ 6 884
03-23 14:45:19.691  24432-25373/coderivium.sbctest D/unique_time﹕ 6 884
03-23 14:45:19.691  24432-25373/coderivium.sbctest D/unique_time﹕ 2 204

1 个答案:

答案 0 :(得分:0)

行。真的是董事会的问题。我开发了一个客户端应用程序,用于从CSR开发板读取流数据,我注意到它需要一个特殊的蓝牙天线。当我连接它时,速度提高了,延迟减少了。