我尝试将我的Android设备连接到通过蓝牙连接进行通信的Pulse Sensor设备。
我关注了Android Bluetooth Chat example,这里有我的代码核心:
BluetoothDevice mDevice = mBlueToothAdapter.getRemoteDevice(MAC_DEVICE);
ParcelUuid[] uuids = mDevice.getUuids();
uuid只包含一个具有此值的条目:
00001101-0000-1000-8000-00805f9b34fb
之后我有了这段代码:
BluetoothSocket mmSocket = device.
createInsecureRfcommSocketToServiceRecord(uuids[0].getUuid());
在这里我可以看到 mmSocket 的状态是 INIT 。
然后我打电话给:
mmSocket.connect();
有时候会起作用。大多数情况下,此调用会生成以下IOException:
java.io.IOException: read failed, socket might closed or timeout, read ret: -1
如果从调试开始,我检查套接字的状态,我可以看到它没有关闭,但它还处于INIT状态。
我还尝试使用createRfcommSocketToServiceRecord
方法创建套接字。我也试过了基本的UUID:
00000000-0000-1000-8000-00805f9b34fb
但结果相同。
我该如何解决这个问题?