iOS:未收到Central到Peripheral的写请求

时间:2017-04-19 14:00:58

标签: ios objective-c bluetooth-lowenergy cbperipheral cbcentralmanager

我正在尝试从Central发送写入请求,并且在外围设备中没有调用相同的委托。如果我取消订阅Central的特性,则会调用didUnsubscribeFromCharacteristic。我不确定如何在外围应用程序中获取请求。

中央代码:

  

[peripheral writeValue:data forCracteristic:characteristic type:CBCharacteristicWriteWithResponse];

尝试使用类型调用相同的方法:CBCharacteristicWriteWithoutResponse,它无法正常工作。

任何帮助都会得到满足。

提前致谢!

2 个答案:

答案 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];