--------已解决-------------- 我正在写一个android使用RFCOMM通过蓝牙连接到设备的应用程序。我使用BluetoothChat示例作为建立连接的基础,并且大部分时间一切正常。有时由于套接字已打开的消息,我无法重新连接:RFCOMM_CreateConnection - 已打开状态:2,RFC状态:4,MCB状态:5 如果我连接到设备,关闭应用程序(调用onDestroy ()),重新打开它并尝试再次连接,结果如上所示。RFCOMM_CreateConnection - 已打开状态:2,RFC状态:4,MCB状态:5
我用这个方法在ConnectThread连接(例如ref.BluetoothChat): 方法M = device.getClass()getMethod( “createRfcommSocket”,新的等级[] {int.class}); tmp =(BluetoothSocket)m.invoke(device,Integer.valueOf(1));
mmSocket = tmp;
解决此问题的唯一方法是关闭/打开android手机的蓝牙。这导致我相信socket没有在onDestroy()上关闭,但我仍然要求关闭所有线程,如前面提到的示例中所示。 任何想法将appriciated。
我解决了这个在我的主要活动,其中的onResume检查连接状态,并相应restards蓝牙连接做了检查。 –
嘿,这可能是一个5岁的问题超级随机,但你会记得你观察这个设备上的什么设备?我在谷歌工作,我试图追捕这个根源。 –
@ZachJohnson因为我在2016年遇到了这个问题,并试图为我的一位业务合作伙伴解决这个问题。 设备是HTC Flyer P510e。我希望这会有所帮助。 – Lvka