简介

HUAWEI Health 是华为开发的用于运动健康领域的一个开放平台, 三方APP可以借助HUAWEI Health开放平台提供的运动健康数据开发自己专有的应用。

HUAWEI Health Kit是提供给三方应用开发者使用的JAR包,用于和HUAWEI Health平台的对接。

华为运动健康是一个数据接入和服务汇聚的开放平台,包括运动健康APP和运动健康云。其中,运动健康APP运行在手机上,为用户提供专业的运动记录、减脂塑型训练、科学睡眠和健康管理等功能。运动健康云提供了安全可靠的数据存储能力,用户可选择将历史数据上传并保存到云侧。

您将要做什么

本Codelab提供了一个三方APP基础开发样例,您将使用HUAWEI Health KitAPI,实现一个血压数据读取和测量结果展示功能的应用程序。

您将会学到什么

硬件要求

软件要求

需要的知识点

  1. 点击以下链接,下载Codelab的demo工程包:
  2. Demo工程包

  3. 解压下载的压缩包到本地磁盘(比如D:\HUAWEI-HealthKitCodeLab)。
  4. 使用DevEco Studio开发工具打开解压后的Demo工程。

1. 集成HUAWEI Health Kit

步骤1 下载添加HUAWEI Health Kit的依赖

在工程下创建app\libs目录,登录开发者联盟网站将HUAWEI HealthKit.jar下载并拷贝到libs目录下。

步骤2 添加HUAWEI Health Kit的JAR包依赖

采用本地文件系统的依赖方式,在app\build.gradle文件的dependencies添加以下内容:

implementation fileTree(dir: 'libs', include: ['*.jar'])

2. 补充关键代码

步骤1 获取用户授权

添加代码,在MainActivity类文件的setOnClickListener()方法中获取用户授权

btnRequestAuth.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int[] userAllowTypesToRead = new int[] {HiHealthOpenPermissionType.HEALTH_OPEN_PERMISSION_TYPE_WRITE_DATA_BLOODPRESSURE}; HiHealthAuth.requestAuthorization(mContext, null, userAllowTypesToRead, new IAuthorizationListener() { @Override public void onResult(int resultCode, Object object) { Log.i(TAG, "requestAuthorization onResult:" + resultCode); if (resultCode == HiHealthError.SUCCESS) { Log.i(TAG, "requestAuthorization success resultContent:" + object); } combineResult(resultCode, object); } }); } });

步骤2 查询血压数据

添加代码,在MainActivity类文件的setOnClickListener()方法中查询血压数据

btnQuery.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { { int timeout = 0; long endTime = System.currentTimeMillis(); long startTime = endTime - 86400000L * 15; HiHealthDataQuery hiHealthDataQuery = new HiHealthDataQuery(HiHealthSetType.DATA_SET_BLOOD_PRESSURE, startTime, endTime, new HiHealthDataQueryOption()); HiHealthDataStore.execQuery(mContext, hiHealthDataQuery, timeout, new ResultCallback() { @Override public void onResult(int resultCode, final Object data) { StringBuilder sb = new StringBuilder(); if (resultCode == HiHealthError.SUCCESS) { Log.i(TAG, "query not null,enter set data"); List dataList = (List) data; if (!dataList.isEmpty()) { HiHealthSetData hiHealthData = (HiHealthSetData) dataList.get(dataList.size() - 1); Map<Integer, Double> map = hiHealthData.getMap(); Timestamp stamp = new Timestamp(hiHealthData.getStartTime()); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String currentDate = df.format(stamp); sb.append(" 开始时间: " + currentDate); sb.append(" 高压: " + (map.get(HiHealthPointType.DATA_POINT_BLOODPRESSURE_SYSTOLIC).intValue())); sb.append(" 低压: " + map.get(HiHealthPointType.DATA_POINT_BLOODPRESSURE_DIASTOLIC).intValue()); sb.append(" 脉搏: " + map.get(HiHealthPointType.DATA_POINT_REST_HEARTRATE).intValue()); } } combineResult(resultCode, sb.toString()); } }); } } });

3. 构建并运行应用程序

在工程完成同步后,选择您的设备作为部署目标,单击"运行"图标,构建运行,在设备上安装并启动示例应用程序,开始进行体验测试。如下图

运行效果:

恭喜您,您已经成功完成了此次Codelab任务和挑战,并学到了以下技能:

请访问我们的官方网站,以进一步了解HUAWEI Health

https://developer.huawei.com/consumer/cn/huaweihealth

本文介绍的Codelab工程仅用于简单开发体验与演示,实际开发过程中应严格遵循开发指南。您可以访问以下链接可以获取详细信息:

https://developer.huawei.com/consumer/cn/doc/31201

已复制代码