iOS蓝牙开发CBCharacteristicWriteType配置不正确导到CBPeripheral writeValue写不成功?

    技术2023-10-08  109

    特征属性枚举类型有:Read、Without ResponseWrite、Write、Notify

    Read:读取数据但是不怎么更新的特征值。

    Write Without Response:写入数据没有反馈。

    Write:写入数据有反馈。

    Notify:读取数据但经常更新。

    typedef NS_ENUM(NSInteger, CBCharacteristicWriteType) {

    CBCharacteristicWriteWithResponse = 0, CBCharacteristicWriteWithoutResponse,

    };

    type参数可以为CBCharacteristicWriteWithResponse或type:CBCharacteristicWriteWithoutResponse,区别是给特征写入数据是否会有反馈。

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

    如果设置为WithResponse,则可以写成功一次,只可读。

    如果为WithoutResponse,则一次也不能写成功,可以读,也可以通知。

    //只有 characteristic.properties 有write的权限才可以写,需要条件判断一下

    if(_myCharacteristic.properties & CBCharacteristicPropertyWrite){

    [_myPeripheral writeValue:sendData forCharacteristic:_myCharacteristic type:CBCharacteristicWriteWithResponse]; }else{ NSLog(@"该字段不可写!"); }

    ———————————————— 版权声明:本文为博主「yuhao309」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/yuhao309/article/details/79692146

    Processed: 0.018, SQL: 9