Узнать текущую частоту пульса Samsung Health
Я пытаюсь получить текущую частоту сердечных сокращений с помощью Samsung Health. Я использую SDK от Samsung для Android, основывая свой код на приведенном примере для подсчета шагов. Вот как я адаптировал код для некоторых тестов, которые проводил в 18:00:
HealthDataResolver resolver = new HealthDataResolver(mStore, null);
// Set time range from start time of today to the current time
long startTime = 16 * 60 * 60 * 1000;
long endTime = startTime + 2 * 60 * 60 * 1000;
HealthDataResolver.Filter filter = HealthDataResolver.Filter.and(
HealthDataResolver.Filter.greaterThanEquals(HealthConstants.HeartRate.START_TIME, startTime),
HealthDataResolver.Filter.lessThanEquals(HealthConstants.HeartRate.END_TIME, endTime));
HealthDataResolver.ReadRequest request = new ReadRequest.Builder()
.setDataType(HealthConstants.HeartRate.HEALTH_DATA_TYPE)//.setDataType(HealthConstants.StepCount.HEALTH_DATA_TYPE)
.setProperties(new String[] {HealthConstants.HeartRate.HEART_RATE})
.setLocalTimeRange(
HealthConstants.StepCount.START_TIME,
HealthConstants.StepCount.TIME_OFFSET,
startTime, endTime)
.setFilter(filter)
.build();
try {
resolver.read(request).setResultListener(mListener);
} catch (Exception e) {
Log.e(MainActivity.APP_TAG, "Getting step count fails.", e);
}
По сути, проблема в том, что изначально код шагов измерял интервал всего дня (endTime = startTime + ONE_DAY_IN_MILISECONDS
). Я попытался адаптировать этот код для получения среднего значения сердцебиения за последние 20 секунд, но когда я уменьшаю интервал между startTime и endTime до интервала меньше одного часа, среднее значение, которое я получаю, равно нулю. Поэтому у меня вопрос: это правильный способ получить текущее сердцебиение? Если да, то что я делаю не так или как этого добиться?
1 ответ
Я наконец нашел ответ. Samsung Health обновляет свои данные с очень низкой частотой. Это не может быть изменено, и поэтому при попытке доступа к небольшим временным интервалам он не находит никакого регистра и получает нулевое значение. Правильный способ сделать это - напрямую подключиться к браслету через BLE с помощью Samsung SDK для устройств. Есть несколько рекомендаций для получения различных измерений. В этом случае следует использовать Руководство по монитору сердечного ритма.