ios.ble.cbcharacteristicwritewithoutresponse-如何使其起作用



这是我在这里的第一个问题,不要为此而努力。我想获得一些建议,如何使用cbcharacteristicwithoutresponse。

将几个字节从一个iOS设备发送到另一个iOS设备。

我确实尝试以WriteValue发送数据:forcharacteristic:类型:来自一个iOS设备(中心角色)并使用外围人群接收到它:DidReceiveWritereQuests:在另一个iOS设备(外围角色)上。

我对类型没有任何问题:cbcharacteristicwritewitresponse,但是如果我用类型替换为:cbcharacteristicwithoutritewithoutresponse topers offeral stop接收它。怎么了?我是否缺少某些内容或WriteWithouTresponse不支持CBCentralManagerdelegate?

在这里一些代码:

@interface BleCentralDemo : NSObject <CBCentralManagerDelegate> {}
@end
@implementation BleCentralDemo
-(void) writeValue:(int)sUUID characteristicUUID:(int)cUUID p:(CBPeripheral *)p data:(NSData *)data {
[p writeValue:data forCharacteristic:cUUID type:CBCharacteristicWriteWithResponse]; // sent, received
[p writeValue:data forCharacteristic:cUUID type:CBCharacteristicWriteWithOutResponse]; // sent, not received
}
@end
@interface BlePeripheralDemo : NSObject <CBPeripheralManagerDelegate> {}
@end
@implementation BlePeripheralDemo
-(void)peripheralManager:(CBPeripheralManager *)peripheral didReceiveWriteRequests:(NSArray *)requests {
 for (CBATTRequest *request in requests){
 NSLog(@"request.value:%@", request.value); 
 [peripheral respondToRequest:request withResult:CBATTErrorSuccess];
 }
}
@end

我今天遇到了同样的问题。

您应该使用cbcharacteristic propertywritewithoutresponse属性设置特征。(代码中的cuuid)

我的特征来自外围设备。像那样创建

[[CBMutableCharacteristic alloc] initWithType:writeableCharacteristicUUID properties:CBCharacteristicPropertyWrite | CBCharacteristicPropertyNotify | CBCharacteristicPropertyWriteWithoutResponse value :nil permissions:CBAttributePermissionsWriteable];

希望它有帮助

最新更新