android蓝牙连接错误(读取失败的套接字可能关闭或超时)

use*_*395 8 android bluetooth arduino

我想从Android设备中的应用程序连接到远程设备(配对).远程设备是HC-05模块.
我的代码是:

UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb"); //Standard SerialPortService ID

try {
    mSocket = MyDevice.createRfcommSocketToServiceRecord(uuid);
} catch (IOException e) {
    Toast.makeText(this, "S", Toast.LENGTH_SHORT).show();
}  

ba.cancelDiscovery();

try {
    mSocket.connect();
} catch (IOException e){
    Toast.makeText(this, e.getLocalizedMessage(), Toast.LENGTH_SHORT).show();

    Log.e("YOUR_APP_LOG_TAG1", "I got an error", e);
}

try {
    mOutputStream = mSocket.getOutputStream();
    mInputStream = mSocket.getInputStream();
} catch (IOException e) {
    Toast.makeText(this, "io", Toast.LENGTH_SHORT).show();
}
Run Code Online (Sandbox Code Playgroud)

但我在行mSocket.connect()中遇到错误.

错误:

读取失败的套接字可能会关闭或超时读取ret

请帮忙.

Krz*_*rko -2

这可能是由很多原因引起的 - 就我而言,我发现了三个:

  1. 电源问题 - HC-05 不稳定,尽管它没有通过明显的 LED 闪烁模式来显示这一点。更换电池解决了这个问题。

  2. 另一个设备与 HC-05 配对,有时会“窃取”连接。可能可以通过使用 AT 命令进行一些设置来修复,但我只是简单地取消了除一台设备之外的所有设备的配对。

  3. 设备已关闭/超出范围。