当我关闭蓝牙服务器套接字或蓝牙套接字时,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 上的蓝牙

蓝牙连接;无法正确发送字符串

Xamarin Zebra Sdk - 蓝牙打印“读取失败,插座可能关闭或超时,读取ret:-1”

Android - 关闭特定的蓝牙插座