Получить текущую частоту сердечных сокращений Samsung здоровья - PullRequest
1 голос
/ 14 марта 2020

Я пытаюсь получить текущую частоту сердечных сокращений, используя здоровье Samsung. Я использую 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 Ответ

0 голосов
/ 18 марта 2020

Я наконец нашел ответ. Samsung Health обновляет данные с очень низкой частотой. Это нельзя изменить, и поэтому при попытке доступа к небольшим временным интервалам он не находит регистр и получает нулевое значение. Правильный способ сделать это - напрямую подключиться к браслету через BLE с помощью Samsung SDK для устройств . Существует множество рекомендаций для получения различных измерений. В этом случае следует использовать Руководство по мониторингу сердечного ритма.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...