Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 获取三星健康的当前心率_Android_Heartbeat_Samsung Health - Fatal编程技术网

Android 获取三星健康的当前心率

Android 获取三星健康的当前心率,android,heartbeat,samsung-health,Android,Heartbeat,Samsung Health,我正在尝试使用三星健康获取当前的心率。我正在使用Android,我的代码基于。下面是我如何为下午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 = sta

我正在尝试使用三星健康获取当前的心率。我正在使用Android,我的代码基于。下面是我如何为下午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);
}

因此,基本上,问题在于,最初,steps代码测量的是一整天的时间间隔(
endTime=startTime+1天,单位为毫秒)。我试图修改此代码以获得最后20秒的平均心跳,但当我将开始时间和结束时间之间的间隔缩小到小于1小时时,我检索到的平均心跳为零。因此,我的问题是:这是获得当前心跳的正确方法吗?如果是这样的话,我做错了什么,或者怎样才能做到呢?

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

我终于找到了答案。三星健康以极低的频率更新其数据。这是无法更改的,因此,当尝试访问小时间间隔时,它找不到任何寄存器并检索零值。正确的方法是使用BLE直接连接到腕带。为了获得不同的测量结果,有一系列指南。在这种情况下,应使用心率监测指南