0
我試圖構建發送有關數據的手勢用戶執行,到Java服務器,使用藍牙一個Android客戶端應用程序。 當用戶執行手勢時,應用程序將有關它的數據發送到PC。
例如(android client send) 5:-24:2
,(java server receive) 5:-24:2
。
只要手勢執行它們之間長範圍內,代碼工作正常。通過藍牙發送的數據多次輪番上漲,而新的數據繼續接收
問題是當應用程序非常快速地發送數據(因爲用戶執行滾動例如,所以onScroll(...)
要求每個onTouchEvent(...)
)。
那麼一個特定的消息被卡住:
(android client send) 5:-24:2, (java server receive) 5:-24:2 (ok)
(android client send) 5:-24:2, (java server receive) 5:-24:2 (ok)
(android client send) 5:-24:2, (java server receive) 5:-24:25:-24:2 (message stuck)
(android client send) 5:-24:2, (java server receive) 5:-24:25:-24:2 (message stuck)
...
Java服務器端讀取代碼:
private StreamConnection mConnection;
public void run() {
try {
InputStream inputStream = mConnection.openInputStream();
System.out.println("waiting for input");
byte[] buffer = new byte[BUFFER_SIZE];
while (true) {
inputStream.read(buffer);
String command = new String(buffer).trim();
System.out.println(command);
}
} catch (Exception e) {
e.printStackTrace();
}
}
Android客戶端寫入端:
private final OutputStream mmOutStream;
String msg = "5:-24:2";
byte[] msgByte = msg.getBytes();
mmOutStream.write(msgByte);