我正在尝试从Central发送写入请求,并且在外围设备中没有调用相同的委托。如果我取消订阅Central的特性,则会调用didUnsubscribeFromCharacteristic。我不确定如何在外围应用程序中获取请求。
[peripheral writeValue:data forCracteristic:characteristic type:CBCharacteristicWriteWithResponse];
尝试使用类型调用相同的方法:CBCharacteristicWriteWithoutResponse,它无法正常工作。
任何帮助都会得到满足。
提前致谢!
答案 0 :(得分:0)
我认为在外设中你应该致电didReceiveWriteRequests
代表。
答案 1 :(得分:0)
如何在外围设备中启动您的特性?检查他们的属性,您需要:
properties: CBCharacteristicPropertyWrite
permissions: CBAttributePermissionWriteable
调用哪个PeripheralManager委托方法? 必须不仅仅是peripheralManager:central:didUnsubscribeFromCharacteristic
peripheralManagerDidUpdateState
peripheralManager:didAddService:error
peripheralManagerDidStartAdvertising:error
...
参见CBPeripheralManagerDelegate .... 检查是否所有这些都被调用和错误。也许您的服务/特征有问题......
并检查你的中心方法是否也被调用。 E.g。
- (void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service
error:(NSError *)error
当然,您必须使用正确的委托在外设中初始化您的peripheralManager(并实现所有其他所需的委托方法):
self.peripheralManager = [[CBPeripheralManager alloc] initWithDelegate:self queue:nil options:nil];