蓝牙套接字:读取失败,套接字可能关闭或超时(Bluetooth Socket: read failed, socket might closed or timeout)
所以我收到此错误: W/System.err: java.io.IOException: read failed, socket might closed or timeout, read ret: -1
我正在尝试使用三星Galaxy S4(API 21)和S2(API 16)通过蓝牙连接到自定义设备。 有时它有效。 我不知道会发生什么。
我知道还有其他问题的答案,但我觉得我已经看到了所有问题。
我不能使用BluetoothDevice的“createRfCommSocket”方法。
我的UUID是正确的,因为我知道我的自定义设备中的UUID。
我无法以编程方式启用和禁用BluetoothAdapter。
我尝试清除App Cache。
清除蓝牙缓存后,有时可以正常工作。
所以我的连接代码:
private class ConnectAsyncTask extends AsyncTask {
@Override
protected Boolean doInBackground(String... params) {
try {
Thread.sleep(5000);
UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
mBluetoothDevice = mBluetoothAdapter.getRemoteDevice(params[0]);
mBluetoothSocket = mBluetoothDevice
.createRfcommSocketToServiceRecord(uuid);
mBluetoothSocket.connect();
mOutputStream = mBluetoothSocket.getOutputStream();
mInputStream = mBluetoothSocket.getInputStream();
return true;
} catch (Exception e) {
e.printStackTrace();
try {
mBl