我想知道是否有人可以帮我解决我遇到的问题。我正在重写一个我在J2ME使用android开发的应用程序。我唯一遇到的问题是蓝牙。该应用程序从蓝牙条形码阅读器读取信息,并将数据发送到蓝牙打印机。
在读取或写入任何数据之前,我会扫描所有蓝牙设备,允许用户选择设备并存储设备MAC地址。
让我们从条形码阅读器开始。设备发现找不到它。为什么?甚至诺基亚设备也能找到我正在使用的阅读器。
Discovery找到了打印机,但是当我尝试向其打印数据时,我收到IOException,无法启动发现服务。
使用J2ME我使用以下方法连接到两个设备:
bconn = (StreamConnection) Connector.open("btspp://" + addr + ":1;authenticate=false;encrypt=false;master=false");
使用android我使用以下内容:
String addr;
BluetoothAdapter bconn=null;
BluetoothDevice btd;
BluetoothSocket btSocket;
private UUID[] uuidSet;
.
.
.
uuidSet=new UUID[1];
uuidSet[0]=UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
try{
bconn=BluetoothAdapter.getDefaultAdapter();
btd=bconn.getRemoteDevice(addr);
btSocket=btd.createRfcommSocketToServiceRecord(uuidSet[0]);
btSocket.connect();
}
catch(Exception se){
System.out.println("open read Error: " + se);
Log.d("0", "Read Error " + se);
}
错误发生在btSocket.connect行
经过几个小时的战斗后,我决定将我的打印机和扫描仪安装到带有蓝色usb蓝牙设备的PC上。
当我尝试使用应用程序(使用超级终端)时,一切正常。
有人有任何建议吗。
此致 史蒂夫