CoreBluetooth:我可以订阅具有读写权限的特性吗?

时间:2015-01-14 02:16:40

标签: ios iphone bluetooth core-bluetooth

我想使用我的iPhone连接到配备蓝牙 4.0的设备。

我记录了设备(作为外设)属性: 0x16 。这意味着

CBCharacteristicPropertyRead = 0x02,
CBCharacteristicPropertyWriteWithoutResponse = 0x04,
CBCharacteristicPropertyNotify = 0x10,

(假设我订阅了这个特性。)如果我将一些数据写入此特性,然后其值将被更改,则通知将发生。显然,工作流程不是我想要的。我只是写了一些数据,但我不希望得到相同的数据通知回叫。

所以,我认为似乎我不应该为我订阅的内容写任何东西,对吧?

希望得到具体的答案。

1 个答案:

答案 0 :(得分:0)

您必须使用CBPeripheral中的setNotifyValue:forCharacteristic:方法订阅通知。然后,只要特征值发生变化,您就会通过peripheral:didUpdateValueForCharacteristic:error:委托回调接收通知。

请注意,您的外围设备决定何时发送通知:

  

因为选择何时发送更新是外围设备,所以   应用程序应准备好处理它们,只要通知或   指示仍然有效

因此无法保证您在写完后立即收到通知。