Android 崩溃后无法重新打开BluetoothSocket

Android 崩溃后无法重新打开BluetoothSocket,android,bluetooth,Android,Bluetooth,我正在开发一款连接各种蓝牙打印机的应用程序。它大部分时间都有效。但是,如果应用程序在未正确关闭BluetoothSocket的情况下崩溃或通过ADB被杀死,则在应用程序重新启动时无法重新建立套接字。它总是失败,并显示特定的异常消息: java.io.IOException:[JSR82]连接:未创建连接失败或中止 我发现清除此情况的唯一方法是重新启动平板电脑和/或其连接的设备。还有别的办法吗?希望该应用程序在完成时不会崩溃太多,但我仍然希望它具有弹性 我在运行4.0.4的联想平板电脑上看到了这一

我正在开发一款连接各种蓝牙打印机的应用程序。它大部分时间都有效。但是,如果应用程序在未正确关闭BluetoothSocket的情况下崩溃或通过ADB被杀死,则在应用程序重新启动时无法重新建立套接字。它总是失败,并显示特定的异常消息:

java.io.IOException:[JSR82]连接:未创建连接失败或中止

我发现清除此情况的唯一方法是重新启动平板电脑和/或其连接的设备。还有别的办法吗?希望该应用程序在完成时不会崩溃太多,但我仍然希望它具有弹性


我在运行4.0.4的联想平板电脑上看到了这一点,但我需要支持2.3甚至2.2版本的设备。

我发现了这个讨论:跟进我自己的问题:我通过让我的BluetoothSockets由一个在自己流程中运行的服务来管理来解决这个问题。我通过向服务传递消息和从服务传递消息来打开、关闭、读取和写入套接字。如果应用程序崩溃,服务将完全关闭。如果它在同一个进程中运行,则不会发生错误。