我遇到了意想不到的行为。我正在Corebluetooth上制作一个简单的包装器并制作了2个应用程序:一个用作客户端,另一个用作服务器。
在服务器端,每当我通过[updateValue:forCharacteristic:onSubscribedCentral]更新特征值时,我的响应为0.根据Apple文档,如果可以发送更新,它将返回YES,如果基础更新,则返回NO传输队列已满。我搜索此错误,发现可以通过在peripheralManagerIsReadyToUpdateSubscribers:方法中再次发送数据来处理。这很好。
问题出现在客户端。
连接到设备并成功读取值后,我的外围设备断开连接并显示错误:指定的设备已与我们断开连接。尽管我的服务器不断发送值,但仍会发生这种情况。我的问题有点类似于 Peripheral transmit queue issue 但在我的情况下,某些时候外围设备保持连接,并在客户端更新值。但大部分时间都是外围设备断开连接。
我已经搜索了很多解决方案,甚至尝试过以下建议: CoreBluetooth repeatedly disconnecting。但没有用。