我正在使用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
仅此而已,接下来什么也没发生,我没有从中央管理器收到任何数据,设备状态永远不会改变。
答案 0 :(得分:0)
我正在努力解决具有完全相同症状的问题。希望这是同样的问题,这种反应很有帮助。
在我的情况下,问题是由连接建立后我的设备立即发送的链路层控制PDU引起的。具体来说,我正在运行Apache Mynewt(http://mynewt.apache.org/),其NimBLE控制器在建立连接后立即启动功能交换过程。由于我的设备是外围设备,而iOS 11设备是中心设备,我的设备会发送LL_SLAVE_FEATURE_REQ
PDU。
我不知道它是涉及的时间还是PDU本身,但无论如何,iOS设备在功能交换后都不会发送任何应用层数据。当我更改NimBLE以便它不启动功能交换时,设备询问正常发生,并且CoreBluetooth连接的回调被调用。