3

如标题所述,我的蓝牙套接字只有在调试器中运行时才会建立连接。当我在 上放置断点时connect(),它会在我跨过大约一秒钟的时间连接时连接。当我尝试在 release 中运行时,它会立即抛出一个 IOexception,指出从套接字读取失败。我在安卓 5.1.1 上运行

尝试连接的代码

BtCommThread(BluetoothDevice btDevice, BluetoothInterface btInterface) throws IOException {//let caller handle Exception with constructor
    callbacks = btInterface;
    device = btDevice;
    socket = device.createRfcommSocketToServiceRecord(BluetoothService.uuid);
    socket.connect();//attempt connection
    input = new BufferedReader(new InputStreamReader(socket.getInputStream()));//get input
    output = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));//get output
}

什么可能导致蓝牙套接字仅在调试器中工作?我已经实现了一个服务,如果它失败了十次,它会重试构建我的 BtCommThread 并连接套接字。我还尝试在连接之前添加一个简单的线程睡眠,认为这可能是一个时间问题。我真的很茫然。

有谁知道什么可能有帮助?

硬件信息

安卓手机:谷歌 Nexus 5

Linux 系统:运行 debian armhf 的 Udoo MCU

4

0 回答 0