我在做什么: 我正在研究一个应用程序,该应用程序将使用SPP使用蓝牙从生物识别设备获取数据。为此,我有一些命令(以字节和HEX格式)和生物识别设备制造商提供的步骤。Android蓝牙插座
我的问题: 我必须按照2个步骤获取数据,即一个接一个地发送两个命令。生物识别设备在接收到第二个命令时返回数据。我已成功建立与设备的连接并执行第一条命令,但是当我向设备发送第二条命令时,应用程序卡住了,并且经过一段时间生物特征识别设备终止连接并收到IO异常:套接字已关闭,不明白第二条命令上发生了什么。
我做: 我已经在Android SDK中提供的样品例如Bluetooth Chat根据我的要求,即我送这个函数命令使用BluetoothChatService.class和修改ConnectThread线程的run函数。并使用“00001101-0000-1000-8000-00805F9B34FB”UUID。用于连接到插座我曾尝试以下代码:
if (Build.VERSION.SDK_INT > 9) {
tmp = device.createInsecureRfcommSocketToServiceRecord(MY_UUID);
}
else {
tmp = device.createRfcommSocketToServiceRecord(MY_UUID);
}
而且
Method m = device.getClass().getMethod("createRfcommSocket",
new Class[] { int.class });
tmp = (BluetoothSocket) m.invoke(device, Integer.valueOf(1));
而且
tmp = device.createRfcommSocketToServiceRecord(MY_UUID);
任何一个知道我在哪里错了?
预先感谢您。 但其中一个可以解决我的问题。
编辑 我已经解决了这个问题。这是方法我是谁建立socket连接
if (Build.VERSION.SDK_INT < 10){
Method m = device.getClass().getMethod("createRfcommSocket",new Class[] { int.class });
tmp = (BluetoothSocket) m.invoke(device, Integer.valueOf(1));
}
其他{ TMP = device.createRfcommSocketToServiceRecord(MY_UUID); }
我有检查提供的文件,它没有指定和安全要求。我正在测试这个HTC欲望,HTC欲望高清和三星Galaxy Tab 10.1。 –