0

BLE device (pulsometer) value in characteristic always the same. The signal goes to onCharacteristicChanged but the value does not change, tried to get the value in different ways.

@Override
public void onServicesDiscovered(BluetoothGatt gatt, int status) {
super.onServicesDiscovered(gatt, status);
    BluetoothGattCharacteristic characteristic3 = gatt.getService(UUID.fromString("0000180f-0000-1000-8000-00805f9b34fb"))
                    .getCharacteristic(UUID.fromString("00002a19-0000-1000-8000-00805f9b34fb"));
    gatt.setCharacteristicNotification(characteristic3, true);
    gatt.readCharacteristic(characteristic3);
}

@Override
public void onCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) {
    super.onCharacteristicRead(gatt, characteristic, status);
    UUID uuid = UUID.fromString("00002902-0000-1000-8000-00805f9b34fb");
    BluetoothGattDescriptor descriptor = characteristic.getDescriptor(uuid);
    descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
    gatt.writeDescriptor(descriptor);
}

@Override
public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) {
    super.onCharacteristicChanged(gatt, characteristic);
    Log.e(TAG, "pulse: " + characteristic.getIntValue(BluetoothGattCharacteristic.FORMAT_UINT8, 0));
}

logcat

KeyGenQt
  • 129
  • 1
  • 5
  • check this https://github.com/devunwired/accessory-samples/blob/master/BluetoothGatt/src/com/example/bluetoothgatt/MainActivity.java if it helps. – Raghunandan May 03 '17 at 07:14

1 Answers1

0

Decision:

@Override
    public void onServicesDiscovered(BluetoothGatt gatt, int status) {
    super.onServicesDiscovered(gatt, status);

    BluetoothGattCharacteristic characteristic2 = gatt.getService(UUID.fromString("0000180d-0000-1000-8000-00805f9b34fb"))
                    .getCharacteristic(UUID.fromString("00002a37-0000-1000-8000-00805f9b34fb"));

    gatt.setCharacteristicNotification(characteristic2, true);

    // 1 !!!!!!
    UUID uuid = UUID.fromString("00002902-0000-1000-8000-00805f9b34fb");
    BluetoothGattDescriptor descriptor = characteristic2.getDescriptor(uuid);
    descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
    gatt.writeDescriptor(descriptor);

    // 2 !!!!!!
    gatt.readCharacteristic(characteristic2);
}

This Helped , change UUIDs (it can be found), and lib get value - SmartGattLib, and all working )

Community
  • 1
  • 1
KeyGenQt
  • 129
  • 1
  • 5