获取当前心率三星健康

Obtain current heart rate Samsung health

我正在尝试使用三星健康获取当前心跳率。我正在使用 Samsung's SDK for Android basing my code on the example provided to count the steps。以下是我如何为下午 6 点做的一些测试调整代码:

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 之间的间隔缩小到小于一小时的间隔时,我检索到的平均值为零。因此,我的问题是:这是获取当前心跳的正确方法吗?如果是这样,我做错了什么或者如何实现?

我终于找到了答案。三星健康以非常低的频率更新其数据。这无法更改,因此,当尝试访问小时间间隔时,它找不到任何寄存器并检索到零值。正确的做法是使用 Samsung SDK for Devices 通过 BLE 直接连接到腕带。为了获得不同的测量值,有很多指导方针。对于这种情况,应该使用心率监测器指南。