iOS CBCharacteristicWriteType配置不正确导到CBPeripheral writeValue写不成功

这2天在做智能硬件固件升级时碰到往一个characteristic中写数据能成功一次或者一次都不成功,但Android版本固件升级功能没有问题,所以驱动也坚持其代码没有问题,因为牵涉到GCD多线程,加上本人是兼职iOS开发者(主攻Android),怕自己写的代码有问题,于是先默默地查看代码。先贴出此问题关联的iOS API:

typedef NS_ENUM(NSInteger, CBCharacteristicWriteType) {

CBCharacteristicWriteWithResponse = 0,

CBCharacteristicWriteWithoutResponse,

};


注意此API第三个参数为上面枚举类型,如果设置为WithResponse,则可以写成功一次,如果为WithoutResponse,则一次也不能写成功。

- (void)writeValue:(NSData *)data forCharacteristic:(CBCharacteristic *)characteristic type:(CBCharacteristicWriteType)type


在google和stackflow上爬了半天也没有找到相关的问题,后来再看了一遍Apple CoreBluetooth参考,知道这个 type对代码有一定影响,在没有办法的时候,只好说服驱动帮忙修改一下对应的characteristic.property供我调试使用下,将property添加上withoutResponse,一试果然成功了。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值