运动健康
更新时间:
概述
蓝河应用等运动健康模块旨在支持用户的运动和健康数据管理。该模块提供了两个主要部分:采样数据和统计数据,为用户提供了全面的健康数据管理和实时监控功能,对于健康和运动类应用、健康监测工具和健康管理应用非常有用。
接口声明
{ "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]