我正在研究corebluetooth框架,目前我已创建具有可写和可读特性的外围设备。它对我来说很好。但是我想创建读写外围设备。我尝试了以下操作:

characteristic = [[CBMutableCharacteristic alloc] initWithType:characteristicUUID
                                                                  properties:(CBCharacteristicPropertyRead|CBCharacteristicPropertyWrite)
                                                                       value:nil
                                                                 permissions:(CBAttributePermissionsWriteable|CBAttributePermissionsReadable)];

但它在上述情况下不起作用,该属性一次也不可读或可写。我认为这是第一个。我想念什么吗?

最佳答案

您应该检查以下几点:

  • 确保使用- (void)writeValue:(NSData *)data forCharacteristic:(CBCharacteristic *)characteristic type:(CBCharacteristicWriteType)type方法时,使用的CBCharacteristicWriteType应该与CBCharacteristic属性匹配。
  • 在您的外围设备实现中,
  • - (void)peripheralManager:(CBPeripheralManager *)peripheral didReceiveWriteRequests:(NSArray *)requests

    确保那里没有这个宝石:
    [peripheral respondToRequest:request withResult:CBATTErrorWriteNotPermitted];
    我从《 CoreBluetooth编程指南》中复制了该文档,这使我整整整整一个小时不知所措。

    10-08 05:29