在 CoreBluetooth.framework 中实现读/写特性
Posted
技术标签:
【中文标题】在 CoreBluetooth.framework 中实现读/写特性【英文标题】:Implementing read/write characteristic in the CoreBluetooth.framework 【发布时间】:2013-05-21 03:39:36 【问题描述】:我正在研究 corebluetooth 框架,目前我已经创建了具有可写和可读特性的外围设备。它对我来说工作正常。但我想创建读写外围设备。我尝试了以下操作:
characteristic = [[CBMutableCharacteristic alloc] initWithType:characteristicUUID
properties:(CBCharacteristicPropertyRead|CBCharacteristicPropertyWrite)
value:nil
permissions:(CBAttributePermissionsWriteable|CBAttributePermissionsReadable)];
但它在上述情况下不起作用,该属性也是可读或可写的,不是一次都可以。我认为它是第一个。我错过了什么吗?
【问题讨论】:
试试这样(CBCharacteristicPropertyRead & CBCharacteristicPropertyWrite)
@Tony:不,它不工作
Erik:将它们与常量进行“与”运算得到“0”。
【参考方案1】:
您应该检查的几件事:
确保当您使用方法- (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 编程指南中复制了它,它把我搞砸了整整一个小时。
【讨论】:
以上是关于在 CoreBluetooth.framework 中实现读/写特性的主要内容,如果未能解决你的问题,请参考以下文章