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

特征属性枚举类型有: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(@"该字段不可写!");    

      }


你可能感兴趣的:(iOS技术)