HUAWEI Health 是华为开发的用于运动健康领域的一个开放平台, 三方APP可以借助HUAWEI Health开放平台提供的运动健康数据开发自己专有的应用。
HUAWEI Health Kit是提供给三方应用开发者使用的JAR包,用于和HUAWEI Health平台的对接。
华为运动健康是一个数据接入和服务汇聚的开放平台,包括运动健康APP和运动健康云。其中,运动健康APP运行在手机上,为用户提供专业的运动记录、减脂塑型训练、科学睡眠和健康管理等功能。运动健康云提供了安全可靠的数据存储能力,用户可选择将历史数据上传并保存到云侧。
本Codelab提供了一个三方APP基础开发样例,您将使用HUAWEI Health Kit的API,实现一个血压数据读取和测量结果展示功能的应用程序。
在工程下创建app\libs目录,登录开发者联盟网站将HUAWEI HealthKit.jar下载并拷贝到libs目录下。
采用本地文件系统的依赖方式,在app\build.gradle文件的dependencies添加以下内容:
implementation fileTree(dir: 'libs', include: ['*.jar'])
添加代码,在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);
}
});
}
});
添加代码,在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());
}
});
}
}
});
在工程完成同步后,选择您的设备作为部署目标,单击"运行"图标,构建运行,在设备上安装并启动示例应用程序,开始进行体验测试。如下图
运行效果:
恭喜您,您已经成功完成了此次Codelab任务和挑战,并学到了以下技能:
请访问我们的官方网站,以进一步了解HUAWEI Health:
本文介绍的Codelab工程仅用于简单开发体验与演示,实际开发过程中应严格遵循开发指南。您可以访问以下链接可以获取详细信息: