繁体   English   中英

快速写入BLE设备特性的值可能会破坏iOS的CoreBluetooth框架

[英]Writing the value of a BLE device's characteristic at fast speed may break the CoreBluetooth framework of iOS

我们使用iPhone通过Core Bluetooth框架与BLE设备进行交互。 一切正常,除了在iOS仍通过调用writeValue:forCharacteristic:type:编写特征时关闭设备电源时,Core Bluetooth会崩溃。 写入类型为CBCharacteristicWriteWithoutResponse 在这种情况下,我们必须重新启动iPhone才能再次连接到任何 BLE设备,因为在iPhone上关闭和打开蓝牙是没有用的。

我已经对此问题进行了一些测试,并获得了一些信息,当我们关闭BLE设备的电源时,iOS需要一些时间来获取断开连接事件,因此在此期间仍在调用writeValue:forCharacteristic:type:这可能会导致CoreBluetooth框架崩溃! 我不知道为什么iOS的BLE堆栈无法处理这个问题。

关于在iOS仍在向其写入特征时突然断电的情况下如何避免此类事情的任何想法, 或者可以以某种安全的方式调用writeValue:forCharacteristic:type:

谢谢!

我建议使用CBCharacteristicWriteWithResponse,以便您可以确认Peripheral从中央接收数据。 如果关闭了外围设备,则将调用外围设备:didWriteValueFor,错误为!= nil。 而且,您可以编写逻辑,以便在发生任何错误时不发送数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM