Max*_*ell 6 bluetooth ios core-bluetooth
连接到蓝牙设备后,我正在尝试通过调用以下方法为特征写入值:
[peripheral writeValue:data forCharacteristic:characteristic type:CBCharacteristicWriteWithResponse];
Run Code Online (Sandbox Code Playgroud)
正在调用正确的回调(外围设备:didWriteValueForCharacteristic:error :)但是当我从特征中查看数据时,似乎旧数据持久存在于characteristic.value中.但是,当我断开连接并重新连接到设备时,会显示新数据.这仅发生在iOS 7上.
当我将呼叫发送到外围设备时,有什么东西可能会丢失吗?
你看到的行为是正确的.didWriteValueForCharacteristic方法确认已写入特征,但外围设备本身是特征值的"守护者".核心蓝牙在从外围设备检索之前不会有新的值,无论是响应读取请求还是通知(如果您已订阅该特性).
从您的评论看来,旧行为似乎是"短路"过程并立即暴露新值 - 这很危险,因为外围设备可能会对特性进行其他更新,因此您不应该依赖数据执行阅读.
| 归档时间: |
|
| 查看次数: |
1966 次 |
| 最近记录: |