我正在开发一个客户端应用程序,用于通过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
答案 0 :(得分:0)
行。真的是董事会的问题。我开发了一个客户端应用程序,用于从CSR开发板读取流数据,我注意到它需要一个特殊的蓝牙天线。当我连接它时,速度提高了,延迟减少了。