运动健康

更新时间:

概述

蓝河应用等运动健康模块旨在支持用户的运动和健康数据管理。该模块提供了两个主要部分:采样数据和统计数据,为用户提供了全面的健康数据管理和实时监控功能,对于健康和运动类应用、健康监测工具和健康管理应用非常有用。

接口声明

{ "name": "blueos.health.health" }
复制代码

导入模块

import health from '@blueos.health.health'const health = require('@blueos.health.health')
复制代码

开发者需要在 manifest.json 里面配置权限:

{
  "permissions": [{ "name": "watch.permission.READ_HEALTH_DATA" }]
}
复制代码

接口定义

health.getRecentSamples(Object)

获取最近一次采样数据

参数

参数名 类型 必填 说明
dataTypes Array 每个值都是一个 [DATA_TYPES]
success function 回调函数,返回值是一个 Array
complete function 完成的回调函数
fail function 失败回调函数

success 返回值是一个 Array,每项是一个 Object,Object 定义如下

参数名 值类型 说明
dataType [DATA_TYPES] 数据类型
data [Sample] 采样数据

示例

health.getRecentSamples({
  dataTypes: [health.DATA_TYPES.HEART_RATE, health.DATA_TYPES.STEP_COUNT],
  success: (res) => {
    console.log(`current heart rate(${res[0].dataType}) is`, res[0].data.value, 'bpm')
  },
})
复制代码

DATA_TYPES 的取值方式

const heartRate = health.DATA_TYPES.HEART_RATE
复制代码
类型 类型值 返回值类型 返回单位 说明
HEART_RATE 0 Int bpm 心率
HEART_RATE_STEP 1 Int bpm 步行心率
HEART_RATE_RESTING 2 Int bpm 静息心率
STANDING 3 Int hour 站立,以时长衡量。1 小时内站立超过 1 分钟即算作站立 1 小时
INTENSITY_SPORT 4 Int minutes 中高强度运动的持续时长
STEP_COUNT 5 Int 步数
SPO2 6 Int % 血氧
DISTANCE 7 Int 距离,由骑行、跑步、步行产生
CALORIES 8 Int 千卡 总卡路里
STRESS 9 Int 压力值
WALKING_SPEED 10 Int 步/min 步频
SLEEP_UNIT 11 [SLEEP_UNIT 返回值详情] 睡眠时段
SLEEP_STAGES 12 [SLEEP_STAGES 返回值详情] 一个完整睡眠包含的睡眠分期
SLEEP_STATUS 13 Int 0:清醒 1:睡眠 睡眠状态
ENERGY 14 Int % 活力值
WALKING_STATUS 15 Int 0:非步行 1:步行 步行状态
SPEED 16 Float 米/s 配速

health.subscribeSample(Object)

监听采样数据变化

参数

参数名 类型 必填 说明
dataType [DATA_TYPES] 数据类型
callback function 回调函数,返回值是一个[Sample]
fail function 失败回调函数

callback 返回值:

参数值 类型 说明
data Array 采样数据

示例

health.subscribeSample({
  dataType: health.DATA_TYPES.HEART_RATE,
  callback: (res) => {
    console.log(`current heart rate(${res.value}) is`)
  },
})
复制代码

health.unsubscribeSample(Object)

取消监听采样数据变化

参数

参数名 类型 必填 说明
dataType [DATA_TYPES] 数据类型

示例

health.unsubscribeSample({
  dataType: health.DATA_TYPES.HEART_RATE,
})
复制代码

health.getTodayStatistic(Object)

查询当日统计数据

参数名 类型 必填 说明
dataType [DATA_TYPES] 数据类型
statisticType [STATISTIC_TYPES] 统计的维度,不同厂商,不同的 dataType 支持的维度不一样
success function 回调函数,返回值是一个[Statistic], 统计类型由 dataType 决定
complete function 完成的回调函数
fail function 失败回调函数

success 返回值,Object 定义如下

参数名 值类型 说明
value - 查询到的具体 dataType 的数据值,值类型由 dataType 决定
statisticType - 统计类型。如果数据返回的不是统计类型,则此值是 null
startTime timeStamp 统计开始时间
endTime timeStamp 统计结束时间

示例

health.getTodayStatistic({
  dataType: health.DATA_TYPES.HEART_RATE,
  statisticType: health.STATISTIC_TYPES.SUM,
  success: function (data) {
    console.log(data)
  },
  fail: function (data, code) {
    console.log(data, code)
  },
})
复制代码

health.getStatistic(Object)

查询当日统计数据

参数名 类型 必填 说明
dataType [DATA_TYPES] 数据类型
statisticType [STATISTIC_TYPES] 统计的维度,不同厂商,不同的 dataType 支持的维度不一样
startTime timeStamp 开始时间,在这个时间之后发生的活动,包含在这个时间段之前已经发生,但是还没有结束的活动
endTime timeStamp 结束时间,在这个时间之前发生的活动,包含正在发生但还没有完全结束的活动
success function 回调函数,返回值是一个[Statistic] , 统计类型由 dataType 决定
complete function 完成的回调函数
fail function 失败回调函数

success 返回值,Object 定义如下

参数名 值类型 说明
value - 查询到的具体 dataType 的数据值,值类型由 dataType 决定
statisticType - 统计类型。如果数据返回的不是统计类型,则此值是 null
startTime timeStamp 统计开始时间
endTime timeStamp 统计结束时间

示例

health.getStatistic({
  dataType: health.DATA_TYPES.HEART_RATE,
  statisticType: health.STATISTIC_TYPES.SUM,
  startTime: '2023-09-10',
  endTime: '2023-10-1',
  success: function (data) {
    console.log(data)
  },
  fail: function (data, code) {
    console.log(data, code)
  },
})
复制代码

health.subscribeTodayStatistic(Object)

监听当日统计数据

参数名 类型 必填 说明
dataType [DATA_TYPES] 每个值都是一个 DataType 的枚举类型
statisticType [STATISTIC_TYPES] 统计的维度,不同厂商,不同的 dataType 支持的维度不一样
callback function 回调函数,返回值是一个[Statistic] , 统计类型由 dataType 决定
fail function 失败回调函数

callback 返回值,Object 定义如下

参数名 值类型 说明
value - 查询到的具体 dataType 的数据值,值类型由 dataType 决定
statisticType - 统计类型。如果数据返回的不是统计类型,则此值是 null
startTime timeStamp 统计开始时间
endTime timeStamp 统计结束时间

示例

health.subscribeTodayStatistic({
  dataType: health.DATA_TYPES.HEART_RATE,
  statisticType: health.STATISTIC_TYPES.SUM,
  callback: function (data) {
    console.log(data)
  },
  fail: function (data, code) {
    console.log(data, code)
  },
})
复制代码

health.unsubscribeTodayStatistic(Object)

取消监听当日统计数据

参数名 类型 必填 说明
dataType [DATA_TYPES] 数据类型

示例

health.unsubscribeTodayStatistic({
  dataType: health.DATA_TYPES.HEART_RATE,
})
复制代码

SLEEP_UNIT 返回值详情

参数名 单位 说明
enterSleep timeStamp 入睡时间戳
exitSleep timeStamp 出睡时间戳

SLEEP_STAGES 返回值详情

返回值是一个 Array,每一项值是一个 Object,Object 的定义如下:

参数名 单位 说明
enterTimeStamp timeStamp 进入该睡眠分期的时间戳
sleepType Int 进入的睡眠分期类型 1:深睡 2:浅睡 3:快速眼动 4:清醒

Sample

采样查询接口返回的数据结构

参数名 值类型 说明
timeStamp timeStamp 采样时间
value - 查询到的具体 dataType 的数据值,值类型由 dataType 决定

STATISTIC_TYPES 的取值方式

const sum = health.STATISTIC_TYPES.SUM
复制代码

health 支持的统计类型如下:

类型 类型值 说明
AVERAGE 0 平均值
SUM 1 总和
MAX 2 最大值
MIN 3 最小值

统计类型支持情况

各数据类型,支持的情况,具体如下

数据类型 最大小值 总和 平均值
HEART_RATE ✔️
SPO2 ✔️
STRESS ✔️

采样数据部分

[采样数据] 该部分接口主要用以获取健康情况的采样数据,例如获取当前的心率值或者当天的步数。每个采样的数据结构请见[Sample]

统计数据部分

[统计数据],该部分接口主要用以获取采样数据的统计值。统计数据的数据结构请见[Statistic]

上一篇
解包
下一篇
安全能力
以上内容对您是否有帮助?
  • 毫无帮助
  • 帮助不大
  • 一般
  • 很好
  • 非常好
意见反馈