Hi,
In short, I need to enable an iPhone 4s app to receive indications, however the delegate's didUpdateValueForCharacteristic is never called (notification of the same characteristic, however, works).
To explain:
My
BTLE device provides a characteristic with the indication property set
(i.e. CBCharacteristic.properties &
CBCharacteristicPropertyIndicate == CBCharacteristicPropertyIndicate).
The
iOS app code issues CBPeripheral::setNotifyValue:YES .... for this
characteristic. According to the CoreBluetooth documentation, the
didUpdateValueForCharacteristic method is supposed to get called for
both notifications and indications.
I
am using a nRF8001 device from Nordic Semi. Testing it with the master
emulator software, the device clearly sends indications as expected. So
IMHO it's a problem in iOS.
I
have also tried to write the descriptor for the characteristic
explicitly to enable indications (value = 0x0002 or 0x003), using
CBPeripheral::writeValue:forDescriptor. The value gets written alright,
which can be verified by CBPeripheral::readValueForDescriptor, however
didUpdateValueForCharacteristics still does not get called.
Thank you.
Regards,
Patrick