Как получить частоту пульса, хранящуюся в устройстве 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?