Как получить частоту пульса, хранящуюся в устройстве BLE?

Привет, я новичок в программировании Android. Недавно я создал приложения для мониторинга сердечного ритма, которые могут получать частоту сердечных сокращений в режиме реального времени от Mi band 3. Однако Mi band 3 записывает частоту сердечных сокращений каждую минуту (согласно настройкам приложений Mi Fit), и данные сохраняются в памяти. Ми группа. Хотелось бы узнать, как я могу получить магазин пульса в группе Mi для приложений для Android.

Ниже приведен мой код, который может измерять частоту сердечных сокращений в реальном времени. Вы можете найти больше информации об исходном коде в https://github.com/lmarceau/heart-rate-monitor-ble.

В BluetoothGattCallback:

private final BluetoothGattCallback gattClientCallback = new 
BluetoothGattCallback() {
...
@Override
    public void onDescriptorWrite(BluetoothGatt gatt, 
BluetoothGattDescriptor descriptor,
                                  int status){
        BluetoothGattCharacteristic characteristic =
                gatt.getService(HEART_RATE_SERVICE_UUID)

.getCharacteristic(HEART_RATE_CONTROL_POINT_CHAR_UUID);

        /* Write to Heart Rate Control Point Characteristic to get data 
streaming */
        characteristic.setValue(new byte[]{1, 1});
        gatt.writeCharacteristic(characteristic);
    }

    @Override
    public void onCharacteristicRead(BluetoothGatt gatt,
                                     BluetoothGattCharacteristic 
    characteristic,
                                     int status) {
        if (status == BluetoothGatt.GATT_SUCCESS) {
            broadcastUpdate(ACTION_DATA_AVAILABLE, characteristic);
        }
    }

    @Override
    public void onCharacteristicChanged(BluetoothGatt gatt,
                                        BluetoothGattCharacteristic 
    characteristic) {
        broadcastUpdate(ACTION_DATA_AVAILABLE, characteristic);
    }

В setHeartRateNotification:

   public void setHeartRateNotification(BluetoothGatt gatt,
                                     boolean enabled) {
    BluetoothGattCharacteristic characteristic =
            gatt.getService(HEART_RATE_SERVICE_UUID)
                    .getCharacteristic(HEART_RATE_MEASUREMENT_CHAR_UUID);

    /* Enable notification  on the heart rate measurement characteristic 
    */
    gatt.setCharacteristicNotification(characteristic, enabled);

    BluetoothGattDescriptor descriptor =

    characteristic.getDescriptor(CLIENT_CHARACTERISTIC_CONFIG_UUID);

    descriptor.setValue(
            BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);

    gatt.writeDescriptor(descriptor);
}

Этот код может измерять только частоту сердечных сокращений в реальном времени. Как я могу получить уже измеренный пульс и записать его в Mi band 3?

0 ответов

Другие вопросы по тегам