我参与了一个Android APP,它与我们公司的Bt芯片进行BLE连接和配对 . APP作为BLE核心角色,而Bt芯片则作为BLE外设角色 .
当APP在Android 4.4或5.0智能手机上运行时,BLE连接和配对效果很好 . 当APP在Android 5.1或最新版本6.0上运行时,BLE配对由错误代码(错误代码:13)终止,而BLE连接成功 . 这是空中日志:
4,148 0x50654c1d 0x0000 1 LL_VERSION_IND 24 2015/12/3 14:13:39.600368
4,160 0x50654c1d 0x0001 2 LL_VERSION_IND 24 00:00:00.048473 2015/12/3 14:13:39.648841
4,163 0x50654c1d 0x0002 1 LL_FEATURE_REQ 27 00:00:00.048522 2015/12/3 14:13:39.697363
4,169 0x50654c1d 0x0003 2 LL_FEATURE_RSP 27 00:00:00.049066 2015/12/3 14:13:39.746429
4,179 0x50654c1d 0x0004 1 LL_CONNECTION_UPDATE_REQ 0x000a 30 00:00:00.048436 2015/12/3 14:13:39.794865
4,234 0x50654c1d 0x000b 1 LL_ENC_REQ 41 00:00:00.303755 2015/12/3 14:13:40.098620
4,237 0x50654c1d 0x000c 2 LL_ENC_RSP 31 00:00:00.007727 2015/12/3 14:13:40.106347
4,244 0x50654c1d 0x000d 2 LL_START_ENC_REQ 19 00:00:00.007500 2015/12/3 14:13:40.113847
4,245 0x50654c1d 0x000e M LL_START_ENC_RSP 23 00:00:00.007273 2015/12/3 14:13:40.121120
4,248 0x50654c1d 0x000f S LL_START_ENC_RSP 23 00:00:00.007726 2015/12/3 14:13:40.128846
4,392 0x50654c1d 0x004a M LL_CONNECTION_UPDATE_REQ 0x0050 34 00:00:00.442275 2015/12/3 14:13:40.571121
4,794 0x50654c1d 0x008c M LL_CHANNEL_MAP_REQ 0x0093 30 00:00:03.002545 2015/12/3 14:13:43.573666
7,168 0x50654c1d 0x0131 M LL_CHANNEL_MAP_REQ 0x0138 30 00:00:08.043797 2015/12/3 14:13:51.617463
10,065 0x50654c1d 0x0261 M LL_CHANNEL_MAP_REQ 0x0268 30 00:00:14.820121 2015/12/3 14:14:06.437584
10,449 0x50654c1d 0x029d M LL_TERMINATE_IND 24 00:00:02.925044 2015/12/3 14:14:09.362628
我的Bt主机程序(基于Bt芯片)收到 CONNECTION_PARAMETER_UPDATE_COMP_IND
事件,然后收到 LE_DEVICE_DISCONNECT_COMP_IND
事件 . 我想断开 BLE
的操作是由Android Bt堆栈完成的 .
在Android 4.4或5.0中,没有收到 CONNECTION_PARAMETER_UPDATE_COMP_IND
事件,那么问题是什么,我怎样才能在Android 5.1或6.0上成功配置BLE . 任何帮助将不胜感激 .
2 回答
对于蓝牙低功耗设备的查找和配对,有两种方式得到支持
此方法将 BluetoothAdapter.LeScanCallback 作为参数
并且您需要将回调定义为获取响应的流程
感谢您的回复 . 我尝试使用startScan方法而不是startLeScan,但问题仍然存在 . 这是代码的一部分:
还有其他方法可以解决这个问题,或者我错过了什么?谢谢