From 50dd7f5eba0b5b92d98e3a371e929881e68ebf27 Mon Sep 17 00:00:00 2001 From: cpfeiffer Date: Mon, 7 Mar 2016 21:36:31 +0100 Subject: [PATCH] Better check for heartrate support on non-heartrate devices --- .../service/devices/miband/MiBandSupport.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBandSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBandSupport.java index 63c3c022..1b84f3ff 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBandSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBandSupport.java @@ -137,12 +137,11 @@ public class MiBandSupport extends AbstractBTLEDeviceSupport { .notify(getCharacteristic(MiBandService.UUID_CHARACTERISTIC_ACTIVITY_DATA), enable) .notify(getCharacteristic(MiBandService.UUID_CHARACTERISTIC_BATTERY), enable) .notify(getCharacteristic(MiBandService.UUID_CHARACTERISTIC_SENSOR_DATA), enable); - // unconditionally try to get notifications for HR -- will silently fail when characteristic - // is not available. And at this point, we don't even know whether we support it, because - // no device info is available yet. We would have to do the check in a custom NotifyAction. -// if (supportsHeartRate()) { - builder.notify(getCharacteristic(MiBandService.UUID_CHARACTERISTIC_HEART_RATE_MEASUREMENT), enable); -// } + // cannot use supportsHeartrate() here because we don't have that information yet + BluetoothGattCharacteristic heartrateCharacteristic = getCharacteristic(MiBandService.UUID_CHARACTERISTIC_HEART_RATE_MEASUREMENT); + if (heartrateCharacteristic != null) { + builder.notify(heartrateCharacteristic, enable); + } return this; }