我正在做的是
之间的沟通桌面(Windows 8)处理(2.2.1)应用程序< ---- Android应用程序(不是由Processing制作,它是在Android Studio上制作的)
我需要从android应用程序(一方通信)向桌面发送数据。
来自android .. 首先,我已经配对了设备。这意味着在执行这两个应用程序之前,我已经将桌面和Android设备配对了。 蓝牙连接和发送流出在子线程上。
Set<BluetoothDevice> pairedDevices = btAdapter.getBondedDevices();
if (pairedDevices.size() > 0) {
for (BluetoothDevice device : pairedDevices) {
Log.i(TAG, device.getName() + "\n" + device.getAddress());
targetDevice = device;
break;
}
}else{
Log.i(TAG, "No paired device found!");
}
然后,我连接它
BluetoothSocket tmp = null;
// Get a BluetoothSocket for a connection with the
// given BluetoothDevice
try {
tmp = targetDevice.createRfcommSocketToServiceRecord(MY_UUID);
Method m = targetDevice.getClass().getMethod("createRfcommSocket", new Class[]{int.class});
tmp = (BluetoothSocket) m.invoke(targetDevice, 1);
} catch (Exception e) {
Log.e(TAG, "create() failed", e);
}
btSocket = tmp;
if (btSocket != null){
// Socket is created
// try to connect the socket
BluetoothConnectionThread thread = new BluetoothConnectionThread(btSocket);
thread.start();
}
从logcat(Log.i),我可以看到连接已成功建立。似乎android方面没有问题。
我正在使用
的串行端口协议UUIDprivate static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");
从Android方面来说,它完全可以编写任何byte [] ..当我在android上按下虚拟按钮时,设备会向输出流发送虚拟字节。我觉得Android方面没有问题。
现在,在桌面处理(Windows 8,处理2.2.1 - 我必须使用处理2.0,由于某种原因没有其他选项。),我不知道我现在有什么。我在谷歌搜索了很多,但我找不到任何线索。现在,我正在尝试使用处理串行库,如
println(Serial.list());
但它什么都没有......所以,我尝试通过
初始化Serial对象Serial port = new Serial(this, "/dev/rfcomm0", 115200);
但是它给出了错误
打开串口/ dev / rfcomm0时出错:端口忙
还有其他方法可以在处理桌面时读取来自Android的套接字缓冲区(instream)吗?
我确信这不是蓝牙驱动程序问题,因为我为我的桌面安装了最适合的驱动程序(Qualcomm Atheros AR3012蓝牙4.0 + HS)
仅供参考..桌面实际上是带蓝牙的笔记本电脑(华硕UX21E),Android设备是Galaxy Tab S(267.2mm,Octa-Core 2560x1600)。
我想我对蓝牙知之甚少......请引导我某种方式......