升级到IOS 11后,外围设备始终处于连接状态且从不连接

时间:2017-09-22 13:59:45

标签: ios objective-c bluetooth-lowenergy core-bluetooth cbcentralmanager

我正在使用CoreBluetooth for IOS app,在升级IOS版本后,中央管理器无法连接到外围设备而且没有显示任何错误。 在开始连接过程之前,我从设备接收此值:

  

CBPeripheral:0x1c0106e40,identifier = BE2B06BF-F385-82AC-95E6-65EA1CF8B11F,name = icomon,state = disconnected

在我尝试连接到设备后状态发生变化:

  

CBPeripheral:0x1c411bea0,identifier = BE2B06BF-F385-82AC-95E6-65EA1CF8B11F,name = icomon,state = connected

仅此而已,接下来什么也没发生,我没有从中央管理器收到任何数据,设备状态永远不会改变。

1 个答案:

答案 0 :(得分:0)

我正在努力解决具有完全相同症状的问题。希望这是同样的问题,这种反应很有帮助。

在我的情况下,问题是由连接建立后我的设备立即发送的链路层控制PDU引起的。具体来说,我正在运行Apache Mynewt(http://mynewt.apache.org/),其NimBLE控制器在建立连接后立即启动功能交换过程。由于我的设备是外围设备,而iOS 11设备是中心设备,我的设备会发送LL_SLAVE_FEATURE_REQ PDU。

我不知道它是涉及的时间还是PDU本身,但无论如何,iOS设备在功能交换后都不会发送任何应用层数据。当我更改NimBLE以便它不启动功能交换时,设备询问正常发生,并且CoreBluetooth连接的回调被调用。