我正在嘗試與藍牙設備進行通信。我在設備上的信息表明:藍牙ASCII協議
「通信協議是ASCII,逗號分隔輸出值。消息以回車符和換行符結束。當使用終端仿真器保存爲文件時,這些結果可以是讀入Excel電子表格。「
如何發送和接收此設備?我曾嘗試使用InputStreamReader和OutputStreamWriter,但我不認爲這是工作。
編輯:
用於發送數據我想:
public void send(String s){
try {
writer.write(s);
} catch (IOException e) {
e.printStackTrace();
}
}
其中
try {
tmpIn = socket.getInputStream();
tmpOut = socket.getOutputStream();
} catch (IOException e) { }
inStream = tmpIn;
writer = new OutputStreamWriter(tmpOut);
您還可以看到那裏有我使用inStream中這是一個簡單的InputStream。我也嘗試過InputStreamReader,但我只是隨機獲得了一些字符。使用InputStream,無論發送什麼設備,我都只能讀取4個字節,所以我不確定發送是否正常。
我應該使用什麼?謝謝!
請詳細說明。你嘗試過哪些代碼,以及遇到什麼問題?包含任何結果或錯誤消息。 – 2011-04-30 02:26:05
我在我的問題中增加了更多細節,感謝您的關注! – Matt 2011-04-30 02:40:12
如果存在允許指定編碼的編碼,則不要使用無編碼構造函數或方法。如果你沒有指定編碼,你將得到平臺默認編碼,這實質上是「隨機編碼」的委婉說法,導致依賴平臺的代碼。如果你確實是指ASCII碼(只有7位),你應該指定它:'新的OutputStreamWriter(tmpOut,「ASCII」)',但我懷疑它實際上是'ISO-8859-1'或其他一些8位編碼。 – 2011-05-03 15:33:06