iOS。 BLE。 CBCharacteristicWriteWithoutResponse - 如何使其工作?

标签 ios

这是我的第一个问题,不要对我要求太高。 我想获得一些建议,如何使用 CBCharacteristicWriteWithoutResponse 将几个字节从一个 iOS 设备发送到另一个 iOS 设备。

我确实尝试使用 writeValue:forCharacteristic:type: 从一台 iOS 设备发送数据(核心角色) 并在另一台iOS设备上使用peripheralManager:didReceiveWriteRequests:接收它(外设角色)。

我对 type:CBCharacteristicWriteWitResponse 没有问题,但如果我将其替换为 type:CBCharacteristicWriteWithoutResponse 外设将停止接收它。怎么了?我是否遗漏了某些内容或 CBCentralManagerDelegate 不支持 WriteWithoutResponse?

这里有一些代码:

@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

最佳答案

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

您应该使用 CBCharacteristicPropertyWriteWithoutResponse 属性设置您的特征。(代码中的 cUUID)

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

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

希望对你有帮助

关于iOS。 BLE。 CBCharacteristicWriteWithoutResponse - 如何使其工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21470958/

相关文章:

ios - 如何在 Split ViewiOS中将不同的 View 加载到详细 View

ios - 如何在不连接到真正的蓝牙设备的情况下创建 `EAAccessory` 对象?

ios - Swift Collcetionview didSelectItemAtIndexPath 不起作用

iPhone 应用程序崩溃

android - 如何在应用程序下载页面上区分 Android 和 iOS

iphone - UINavigationController - 何时释放推送的 View Controller 等

html - iOS 打开与 map 应用程序的链接

ios - 是否有必要在 swift iOS 中使用扩展来定义委托(delegate)方法

ios - 如何将用户 Facebook 的数据添加到 Firebase

ios - 更改 View Controller 维护导航层次结构