Android蓝牙插座
我想做的是: 我正在开发一个应用程序,该应用程序将使用蓝牙和SPP从生物识别设备获取数据。为此,我有一些由生物识别设备制造商提供的命令(字节和十六进制格式)和步骤 我的问题是: 我必须遵循两个步骤来获取数据,即一个接一个地发送两个命令。当接收到第二个命令时,生物识别设备返回数据。我已成功与设备建立连接并执行第一个命令,但当我向设备发送第二个命令时,应用程序卡住,一段时间后,生物识别设备终止连接,我收到IO异常:套接字关闭,不了解第二个命令发生了什么 我已经做了: 我已经使用了Android SDK示例中提供的示例中的BluetoothChatService.class,并根据我的要求修改了线程的运行函数,即,我正在该函数中发送命令。并使用“00001101-0000-1000-8000-00805F9B34FB”UUID。为了连接到插座,我尝试了以下代码:Android蓝牙插座,android,sockets,bluetooth,Android,Sockets,Bluetooth,我想做的是: 我正在开发一个应用程序,该应用程序将使用蓝牙和SPP从生物识别设备获取数据。为此,我有一些由生物识别设备制造商提供的命令(字节和十六进制格式)和步骤 我的问题是: 我必须遵循两个步骤来获取数据,即一个接一个地发送两个命令。当接收到第二个命令时,生物识别设备返回数据。我已成功与设备建立连接并执行第一个命令,但当我向设备发送第二个命令时,应用程序卡住,一段时间后,生物识别设备终止连接,我收到IO异常:套接字关闭,不了解第二个命令发生了什么 我已经做了: 我已经使用了Android SD
if (Build.VERSION.SDK_INT > 9) {
tmp = device.createInsecureRfcommSocketToServiceRecord(MY_UUID);
}
else {
tmp = device.createRfcommSocketToServiceRecord(MY_UUID);
}
及
及
有人知道我错在哪里吗
先谢谢你。
但其中一个可以解决我的问题
编辑
我已经解决了这个问题。下面是我正在建立套接字连接的方法
if (Build.VERSION.SDK_INT < 10){
Method m = device.getClass().getMethod("createRfcommSocket",new Class[] { int.class });
tmp = (BluetoothSocket) m.invoke(device, Integer.valueOf(1));
if(Build.VERSION.SDK\u INT<10){
方法m=device.getClass().getMethod(“CreateRfcomSocket”,新类[]{int.Class});
tmp=(BluetoothSocket)m.invoke(设备,Integer.valueOf(1));
}
否则{
tmp=device.createrFComSocketToServiceRecord(我的UUID);
}
生物识别设备可能正在请求安全性? 如果没有执行蓝牙安全程序,它可能会断开连接。 几个问题: 你使用的是哪个安卓版本? 您知道设备的SPP连接要求(安全要求)吗?
还可以共享Bluetooth logcat跟踪以确认问题我提供了检查文档,但没有指定安全要求。我正在HTC desire、HTC desire HD和三星Galaxy Tab 10.1上对此进行测试。
tmp = device.createRfcommSocketToServiceRecord(MY_UUID);
if (Build.VERSION.SDK_INT < 10){
Method m = device.getClass().getMethod("createRfcommSocket",new Class[] { int.class });
tmp = (BluetoothSocket) m.invoke(device, Integer.valueOf(1));