当我关闭蓝牙服务器套接字或蓝牙套接字时,Android 应用程序意外退出
Posted
技术标签:
【中文标题】当我关闭蓝牙服务器套接字或蓝牙套接字时,Android 应用程序意外退出【英文标题】:Android app unexpectedly quitted when I closed the bluetooth serversocket or bluetooth socket 【发布时间】:2011-05-30 18:47:34 【问题描述】:当 bluetoothServersocket.close() 在主线程中调用而 bluetoothServersocket.accept(); 时,android 应用程序退出,没有任何警告和错误;被另一个线程中的传入连接阻止。
这是我的代码片段。
公共无效运行()
试试
bluetoothServerSocket = 蓝牙适配器。 getDefaultAdapter().listenUsingRfcommWithServiceRecord(LISTEN_NAME, LISTEN_UUID);
/* 此处为传入连接阻塞的线程 */
bluetoothSocket = bluetoothServerSocket.accept();
...
catch(Exception e) 终于
尝试 bluetoothServerSocket.close(); catch(Exception ex)
尝试 bluetoothSocket.close(); catch(Exception ex)
在活动中。
public void onStop ()
trythread.bluetoothSocket.close(); catch(Exception ex)
trythread.bluetoothServerSocket.close(); catch(Exception ex)
super.onStop();
当我单击后退按钮时。活动关闭,但大约一秒钟后,应用程序退出,没有任何警告。
我的安卓操作系统版本是 2.2。 HTC Desire 设备。
【问题讨论】:
【参考方案1】:我们应该像这样关闭蓝牙连接:
try synchronized (bluetoothServerSocket) bluetoothServerSocket.close(); catch(Exception ex)
【讨论】:
以上是关于当我关闭蓝牙服务器套接字或蓝牙套接字时,Android 应用程序意外退出的主要内容,如果未能解决你的问题,请参考以下文章
蓝牙连接错误:“jnius.jnius.JavaException:发生 JVM 异常:读取失败,套接字可能关闭或超时,读取 ret:-1”
react-native蓝牙连接失败:java.io.IOException读取失败,套接字可能关闭或超时,读取ret:-1
IOException:读取失败,套接字可能关闭 - Android 4.3 上的蓝牙