综上所述,我有一个设备通过ble与我的应用程序通信。应用程序使用Corebluetooth来处理连接和通信。
问题是:
当设备超出范围时,它将断开->连接,它调用diddisconnect()函数,其中我检查它是否超时,并再次调用central.connect。
然后,它将启动连接,并立即在某些设备(仅限iOS14)上,此时它将转到连接失败,并显示以下错误:
"Error Domain=CBErrorDomain Code=15“无法加密连接,连接意外超时。”UserInfo={NSLocalizedDescription=Failed要加密连接,连接意外超时。“
据我所知,似乎只存在于iOS14设备上。
我还测试了阻塞信号,如果我阻塞来自设备的信号,问题就不明显了。如果我屏蔽了来自电话的信号,问题就显而易见了。不确定这是怎么回事,感觉它们都触发了超时。
可能在其他地方也有问题,但在我的iOS13设备上似乎处理得很好。(主要在4部手机上测试,每个版本2部)
同样要澄清的是,应用程序充当中心,而设备充当外围设备。
发布于 2021-05-07 17:29:51
如果我正确地解释了来自CBErrorEncryptionTimedOut (15)的错误消息,这意味着设备启动了一个连接,然后,在iOS设备启动加密过程之后,连接突然意外终止。
因此,应该或多或少地以与CBErrorConnectionTimeout (6)相同的方式对待它。
如果这种情况经常发生,您应该使用来查看发生了什么;可能是iOS中的某个bug。
https://stackoverflow.com/questions/67430753
复制相似问题