2016-04-14 65 views
2

这个问题困惑了我很长一段时间。我曾见过各种解决方案,包括IOException: read failed, socket might closed - Bluetooth on Android 4.3,但都不行。蓝牙连接失败。 java.io.IOException:读取失败,套接字可能关闭或超时,读取ret:-1

主要想法: 1.绑定设备; 2.通过uuid创建一个套接字; 3.取消发现并连接。

日志列表如下:

04-14 11:12:53.044: W/BluetoothAdapter(22212): getBluetoothService() called with no BluetoothManagerCallback 
04-14 11:12:53.044: W/bt-l2cap(2445): L2CA_ErtmConnectReq() PSM: 0x0001 BDA: dc2c2600006c p_ertm_info: 0x00000000 allowed:0x0 preferred:0 
04-14 11:12:53.044: W/bt-l2cap(2445): L2CAP - st: CLOSED evt: 21 
04-14 11:12:53.044: W/bt-l2cap(2445): L2CAP - st: CLOSED evt: 7 
04-14 11:12:53.064: W/bt-l2cap(2445): L2CAP - st: W4_L2CAP_CON_RSP evt: 11 
04-14 11:12:53.064: W/bt-l2cap(2445): L2CAP - st: CONFIG evt: 24 
04-14 11:12:53.074: W/bt-l2cap(2445): L2CAP - st: CONFIG evt: 14 
04-14 11:12:53.074: W/bt-l2cap(2445): L2CAP - st: CONFIG evt: 25 
04-14 11:12:53.074: W/bt-l2cap(2445): L2CAP - st: CONFIG evt: 15 
04-14 11:12:53.264: W/bt-sdp(2445): process_service_search_attr_rsp 
04-14 11:12:53.264: W/bt-l2cap(2445): L2CA_DisconnectReq() CID: 0x004a 
04-14 11:12:53.274: W/bt-l2cap(2445): L2CAP - st: W4_L2CAP_DISC_RSP evt: 18 
04-14 11:12:53.274: E/bt-btif(2445): DISCOVERY_COMP_EVT slot id:91, failed to find channle,          status:1, scn:0 
04-14 11:12:53.274: W/bt-btif(2445): invalid rfc slot id: 91 
04-14 11:12:53.274: W/System.err(22212): java.io.IOException: read failed, socket might closed or timeout, read ret: -1 
04-14 11:12:53.274: W/System.err(22212): at android.bluetooth.BluetoothSocket.readAll(BluetoothSocket.java:574) 
04-14 11:12:53.274: W/System.err(22212): at android.bluetooth.BluetoothSocket.readInt(BluetoothSocket.java:585) 
04-14 11:12:53.274: W/System.err(22212): at android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:326) 
04-14 11:12:53.274: W/System.err(22212): at com.wormhole.bluetoothdemo.MainActivity$ListItemClickListener.onItemClick(MainActivity.java:152) 
04-14 11:12:53.274: W/System.err(22212): at android.widget.AdapterView.performItemClick(AdapterView.java:299) 
04-14 11:12:53.274: W/System.err(22212): at android.widget.AbsListView.performItemClick(AbsListView.java:1115) 
04-14 11:12:53.284: W/System.err(22212): at android.widget.AbsListView$PerformClick.run(AbsListView.java:2928) 
04-14 11:12:53.284: W/System.err(22212): at android.widget.AbsListView$3.run(AbsListView.java:3691) 
04-14 11:12:53.284: W/System.err(22212): at android.os.Handler.handleCallback(Handler.java:733) 
04-14 11:12:53.284: W/System.err(22212): at android.os.Handler.dispatchMessage(Handler.java:95) 
04-14 11:12:53.284: W/System.err(22212): at android.os.Looper.loop(Looper.java:136) 
04-14 11:12:53.284: W/System.err(22212): at android.app.ActivityThread.main(ActivityThread.java:5072) 
04-14 11:12:53.284: W/System.err(22212): at java.lang.reflect.Method.invokeNative(Native Method) 
04-14 11:12:53.294: W/System.err(22212): at java.lang.reflect.Method.invoke(Method.java:515) 
04-14 11:12:53.294: W/System.err(22212): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
04-14 11:12:53.294: W/System.err(22212): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609) 
04-14 11:12:53.294: W/System.err(22212): at dalvik.system.NativeStart.main(Native Method) 

其他信息: 主设备是我的手机(安卓4.4.4或5.1.1机器人),从设备是一个HID设备,UUID是“ 00001124-0000-1000-8000-00805f9b34fb“

非常感谢您的帮助。

回答

1

在我的情况下,系统附带的蓝牙设置工作。

所以,我看看蓝牙设置的源代码。

并将lib frameworks/base/packages/SettingsLib/src/com/android/settingslib/bluetooth复制到我的项目中。

使用反射来调用hide类和函数或变量。

最后,它的工作原理。

我希望这可以帮助。

+0

同样的问题在这里。你能分享解决方案吗?每次尝试使用我找到的反射方法进行连接都不起作用= / –

相关问题