1
我修改了Android藍牙聊天代碼,以便從BluetoothChatService收到的字節將直接發送到BluetoothChat活動。服務和活動之間的快速溝通
其他藍牙設備的發送速率爲125Khz,每個數據包爲20bytes。 因此,每秒將有大約125 * 20字節的數據需要被服務接收,然後發送到活動。
但是,我發現活動收到的數據中會有丟包。我已經證實,服務中收到的數據確實是正確的。
這是發送20字節對象到活動的代碼的一部分。
mHandler.obtainMessage(BluetoothChat.MESSAGE_READ, 20, -1, buffer)
.sendToTarget();
這是得到消息返回從該BluetoothChatService
private final Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case MESSAGE_READ:
byte[] readBuf = (byte[]) msg.obj;
...}
}
不知道如何解決這個問題的處理程序?謝謝。
是的,我認爲這是我的問題的根源。你認爲解決這個問題的最好方法是什麼?謝謝! – 2012-04-06 12:34:30
@AtleeYoung:在將字節傳遞給活動之前,將這些字節複製到單獨的「byte []」中。 – CommonsWare 2012-04-06 13:27:10
buffer2 = buffer.clone(); – 2014-11-18 17:57:52