Android 蓝牙速度问题

Android Bluetooth speed issue

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

这是一个代码:

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;
                }
            }
        }

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

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

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