我正在尝试与蓝牙设备进行通信。我在设备上的信息表明:蓝牙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