我想使用我的iPhone连接到配备蓝牙 4.0的设备。
我记录了设备(作为外设)属性: 0x16 。这意味着
CBCharacteristicPropertyRead = 0x02,
CBCharacteristicPropertyWriteWithoutResponse = 0x04,
CBCharacteristicPropertyNotify = 0x10,
(假设我订阅了这个特性。)如果我将一些数据写入此特性,然后其值将被更改,则通知将发生。显然,工作流程不是我想要的。我只是写了一些数据,但我不希望得到相同的数据通知回叫。
所以,我认为似乎我不应该为我订阅的内容写任何东西,对吧?
希望得到具体的答案。
答案 0 :(得分:0)
您必须使用CBPeripheral中的setNotifyValue:forCharacteristic:
方法订阅通知。然后,只要特征值发生变化,您就会通过peripheral:didUpdateValueForCharacteristic:error:
委托回调接收通知。
请注意,您的外围设备决定何时发送通知:
因为选择何时发送更新是外围设备,所以 应用程序应准备好处理它们,只要通知或 指示仍然有效
因此无法保证您在写完后立即收到通知。