I am facing quite a peculiar problem. I am programming on Android to get a reading from a BLE Blood pressure monitor(A&D UA 651). I am able to get the reading from the device on certain devices(galaxy S6, Note 2, Droid Turbo), but on other devices(like the Oneplus One, HTC Desire 810) etc, I am able to connect to the BP monitor, but cannot get a reading from it.
I followed the tutorial posted by Android here.
Write now, I am using setCharacteristicNotification()
to alert me of any changes in characteristics. I am also writing the correct descriptor using:
descriptor.setValue(BluetoothGattDescriptor.ENABLE_INDICATION_VALUE);
mBluetoothGatt.writeDescriptor(descriptor);`
Here's the kicker. I've noticed that on the devices where I am not alerted of a change in the characteristic value, if I put a breakpoint inside the callback
onDescriptorWrite()
, I am able to get the reading.
The status value in the callback is always 0 (irrespective of whether I can read the value on the characteristic or not.)
This lead me to thinking that I should induce a delay in this callback, but this seldom works.
If anyone has faced this issue before, please let me know. I've been stuck on this issue for quite some time now.
Thanks!