如标题中所述,我的蓝牙套接字只有在调试器中运行时才会建立连接。当我在connect()
上放置一个断点时,它会在我跨过大约需要一秒钟连接时连接。当我尝试在发布中运行时,它会立即抛出一个IOexception,指出从套接字读取失败。我正在运行android 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并连接套接字的服务,如果它最多失败十次。我还尝试在连接之前添加一个简单的线程睡眠,认为它可能是一个计时问题。我真的很茫然。
有没有人知道可能会有什么帮助?
Android手机:Google Nexus 5
Linux系统:运行debian armhf的Udoo MCU