我已經使用現在經典的Google藍牙聊天代碼實現了藍牙連接。但是,我有一個問題,我似乎無法把我的大腦包圍起來。如何檢測Android藍牙文件傳輸的EOF?
輸入流的閱讀是這樣的:
public void run() {
byte[] buffer = new byte[1024]; // buffer store for the stream
int bytes; // bytes returned from read()
// Keep listening to the InputStream until an exception occurs
while (true) {
try {
// Read from the InputStream
bytes = mmInStream.read(buffer);
// Send the obtained bytes to the UI Activity
mHandler.obtainMessage(MESSAGE_READ, bytes, -1, buffer)
.sendToTarget();
} catch (IOException e) {
break;
}
}
}
現在,這很好,如果我只是打印出我收到了作爲最初的例子的字符。但是,假設我想要傳輸圖像文件。我不知道文件的大小,所以我不能計算收到的字節或類似的東西。在我的測試中,我似乎從輸入流中看不到「-1」,這似乎是從輸入流中讀取的「標準」。那麼我怎麼知道我已經到達了正在發送的文件的末尾?
謝謝你的幫助和你的時間。
我在想,可能是這樣,但我想看看是否有我可以俯瞰簡單的方法。但是你已經證實我必須做的......謝謝! – 2011-04-24 13:42:51