java.io.IOException:bt套接字未处于侦听状态[Android棉花糖]

java.io.IOException:bt套接字未处于侦听状态[Android棉花糖],java,android,android-6.0-marshmallow,google-glass,android-bluetooth,Java,Android,Android 6.0 Marshmallow,Google Glass,Android Bluetooth,我正试图在Nexus5(Android 6+)和谷歌眼镜之间建立连接。 要连接的客户端代码: try { bluetoothSocket = device.createInsecureRfcommSocketToServiceRecord( BluetoothParametersHolder.uuids[0]); } catch (Exception e) { e.printStackTrace(); } //In a thread blueto

我正试图在Nexus5(Android 6+)和谷歌眼镜之间建立连接。 要连接的客户端代码:

try {
    bluetoothSocket = device.createInsecureRfcommSocketToServiceRecord(
                BluetoothParametersHolder.uuids[0]);
} catch (Exception e) {
    e.printStackTrace();
}

//In a thread
bluetoothSocket.connect();
服务器端代码:

 mmServerSocket = bluetoothAdapter.listenUsingInsecureRfcommWithServiceRecord(
                BluetoothParametersHolder.NAME, BluetoothParametersHolder.uuids[0]);

//In a thread
socket = mmServerSocket.accept();
用作参考。 我面临的问题是,在accept()返回后,连接立即断开,出现以下错误:

02-15 16:20:42.769 2163-2414/?E/bt\U btif\U sock\U rfcomm: 按\u id查找\u rfc\u插槽\u找不到RFCOMM插槽id:51 02-15 16:20:43.761 8345-8361/? W/System.err:java.io.IOException:bt套接字未处于侦听状态 02-15 16:20:43.762 8345-8361/? W/System.err:at-android.bluetooth.BluetoothSocket.accept(BluetoothSocket.java:453) 02-15 16:20:43.763 8345-8361/? W/System.err:at-android.bluetooth.BluetoothServerSocket.accept(BluetoothServerSocket.java:158) 02-15 16:20:43.763 8345-8361/? W/System.err:at-android.bluetooth.BluetoothServerSocket.accept(BluetoothServerSocket.java:144) 02-15 16:20:43.763 8345-8361/? W/System.err:位于knowles.com.serverapp.handlers.BluetoothConnectionHandler.doInBackground(BluetoothConnectionHandler.java:41) 02-15 16:20:43.763 8345-8361/? W/System.err:位于knowles.com.serverapp.handlers.BluetoothConnectionHandler.doInBackground(BluetoothConnectionHandler.java:16) 02-15 16:20:43.763 8345-8361/? W/System.err:at-android.os.AsyncTask$2.call(AsyncTask.java:295) 02-15 16:20:43.764 8345-8361/? W/System.err:at java.util.concurrent.FutureTask.run(FutureTask.java:237) 02-15 16:20:43.764 8345-8361/? W/System.err:at-android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 02-15 16:20:43.764 8345-8361/? W/System.err:at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 02-15 16:20:43.764 8345-8361/? W/System.err:at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 02-15 16:20:43.782 8345-8361/? W/System.err:at java.lang.Thread.run(Thread.java:818)

我不熟悉蓝牙和玻璃。非常感谢您的帮助。没有从现有的帖子中得到太多帮助。
我在这里尝试的只是从客户端(Glass)向服务器(Mobile)发送一条“hello”消息。

查看框架代码,我们可以找到以下内容:

if (mSocketState != SocketState.LISTENING)
    throw new IOException("bt socket is not in listen state");
显然,如果套接字未处于侦听状态,则方法
accept()
会引发异常

在大多数情况下,如果
BluetoothServerSocket
的实例已关闭,则会发生这种情况。在尝试接受连接之前,请确保未关闭
BluetoothServerSocket