运动健康路线导入,助力用户轻松导航

华为HMS Core运动健康服务支持通过REST API,以GPX文件格式写入用户路线数据,支持导入轨迹(Track)或路程(Route)类型的数据,实现用户路线数据在华为运动健康App中的展示效果。

假若与华为运动健康App相连接的穿戴设备支持路线导入,那么用户路线数据将自动下发至穿戴设备。用户可使用手表轻松导航,按照既定路线进行跑步、爬山等活动。(当前支持的设备有:HUAWEI WATCH GT 3系列、HUAWEI WATCH GT RUNNER。您可以在华为运动健康App—我的—我的线路中查看最新的路线导入设备支持情况。)

流程如下:

用户通过生态应用导出GPX文件。

生态应用通过调用REST API完成路线数据写入,并通过响应体获取路线ID(routeId)。

根据上一步返回的路线ID,通过DeepLink方式完成路线自动导入至华为运动健康App。

路线导入对应的Scope权限为https://www.huawei.com/healthkit/location.write

运动健康路线导入,助力用户轻松导航

路线数据写入场景化示例代码

  1. Route路线写入
请求示例
PUT
https://health-api.cloud.huawei.com/healthkit/v1/routeInfos?format=GPX
请求体
Content-Type: application/xml
Authorization: Bearer ***
x-client-id: ***
x-version: ***
x-caller-trace-id: ***
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<gpx version="1.1" creator="***" xmlns:xsi="***" xmlns="***" xsi:schemaLocation="***">
    <metadata>
        <time>1970-01-01T00:00:00Z</time>
    </metadata>
    <extensions>
        <totalTime>10000</totalTime>
        <totalDistance>10000</totalDistance>
        <routeName>testRouteName</routeName>
    </extensions>
    <rte>
        <rtept lat="24.27207756704355" lon="98.6666815648492">
            <ele>2186.0</ele>
        </rtept>
        <rtept lat="24.27218810046418" lon="98.66668171910422">
            <ele>2188.0</ele>
        </rtept>
        <rtept lat="24.27229019048912" lon="98.6667668786458">
            <ele>2188.0</ele>
        </rtept>
        <rtept lat="24.27242784195029" lon="98.6668908573738">
            <ele>2188.0</ele>
        </rtept>
</rte></gpx>
响应体
HTTP/1.1 200 OK
Content-type: application/json;charset=utf-8
{
    "routeId": 167001079583340846
}
  1. Track路线导入
请求示例
PUT
https://health-api.cloud.huawei.com/healthkit/v1/routeInfos?format=GPX
请求体
Content-Type: application/xml
Authorization: Bearer ***
x-client-id: ***
x-version: ***
x-caller-trace-id: ***
<?xml version="1.0" encoding="UTF-8"?>
<gpx creator="***" version="1.1" xsi:schemaLocation="***" xmlns:ns3="***" xmlns="***" xmlns:xsi="***" xmlns:ns2="***">
  <metadata>
    <time>2021-06-30T10:34:55.000Z</time>
  </metadata>
  <extensions>
    <totalTime>10000</totalTime>
    <totalDistance>10000</totalDistance>
    <routeName>testRouteName2</routeName>
  </extensions>
  <trk>
    <name>跑步</name>
    <type>running</type>
    <trkseg>
      <trkpt lat="22.6551113091409206390380859375" lon="114.05494303442537784576416015625">
        <ele>-33.200000762939453125</ele>
        <time>2021-06-30T10:35:09.000Z</time>
        <extensions>
          <ns3:TrackPointExtension>
            <ns3:atemp>31.0</ns3:atemp>
            <ns3:hr>110</ns3:hr>
            <ns3:cad>79</ns3:cad>
          </ns3:TrackPointExtension>
        </extensions>
      </trkpt>
      <trkpt lat="22.655114494264125823974609375" lon="114.05494051985442638397216796875">
        <ele>-33.40000152587890625</ele>
        <time>2021-06-30T10:35:10.000Z</time>
        <extensions>
          <ns3:TrackPointExtension>
            <ns3:atemp>31.0</ns3:atemp>
            <ns3:hr>111</ns3:hr>
            <ns3:cad>79</ns3:cad>
          </ns3:TrackPointExtension>
        </extensions>
      </trkpt>
      <trkpt lat="22.65512078069150447845458984375" lon="114.05494404025375843048095703125">
        <ele>-33.59999847412109375</ele>
        <time>2021-06-30T10:35:11.000Z</time>
        <extensions>
          <ns3:TrackPointExtension>
            <ns3:atemp>31.0</ns3:atemp>
            <ns3:hr>112</ns3:hr>
            <ns3:cad>79</ns3:cad>
          </ns3:TrackPointExtension>
        </extensions>
      </trkpt>
      <trkpt lat="22.654982395470142364501953125" lon="114.05491151846945285797119140625">
        <ele>-33.59999847412109375</ele>
        <time>2021-06-30T10:35:13.000Z</time>
        <extensions>
          <ns3:TrackPointExtension>
            <ns3:atemp>31.0</ns3:atemp>
            <ns3:hr>114</ns3:hr>
            <ns3:cad>77</ns3:cad>
          </ns3:TrackPointExtension>
        </extensions>
      </trkpt>
    </trkseg>
  </trk>
</gpx>
响应体
HTTP/1.1 200 OK
Content-type: application/json;charset=utf-8
{
    "routeId": 167001079583340846
}
  1. DeepLink跳转运动健康App完成路线自动导入

三方生态应用执行路线写入完成后,Health Kit服务端会生成并返回路线的唯一ID,生态应用可携带路线ID通过DeepLink方式跳转运动健康App我的路线详情页面,自动导入路线至运动健康App中。

开发者使用DeepLink跳转功能前,需要获取华为运动健康App版本号,查询结果返回的versionCode不低于 1300001310时支持此功能。

参数说明

运动健康路线导入,助力用户轻松导航

示例代码

String deeplink = "huaweischeme://healthapp/router/routeDetail"; // scheme前缀               
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(deeplink));
intent.putExtra("fromFlag", "cloud_flag");  // 传入scheme固定参数
intent.putExtra("routeId", routeId);        // 传入scheme参数,路线ID
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);

了解更多详情>>

访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHubGitee

关注我们,第一时间了解 HMS Core 最新技术资讯~

原文链接:https://www.cnblogs.com/hmscore/p/17268233.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:运动健康路线导入,助力用户轻松导航 - Python技术站

(0)
上一篇 2023年4月17日
下一篇 2023年4月17日

相关文章

  • 修改安卓ID为硬件唯一ID

    前言: 最近接到个需求,我们新产品上的外包侧APP需要使用硬件唯一ID(不管怎么升级怎么操作,ID始终不变和硬件绑定),用来做权限校验。 由于了解到安卓ID或序列号都会在擦除升级后重新随机生成,所以这里使用硬件上的ID来作为唯一ID,接下来进入正题 此篇以安卓7.1系统为例 一,常用硬件信息ID 这里列举一些常用的一芯一码ID查询获取方式 1. CPU ID…

    Android 2023年4月18日
    00
  • Android中drawable和mipmap到底有什么区别

    欢迎通过我的个人博客来查看此文章 老项目代码中发现有的图片放到了drawable中, 有的图片放到了mipmap中, 开发时秉承哪个目录下文件多放哪里的原则, 偶尔有疑惑搜一搜文章, 看到了结论也就这么使用了, 不过今日有时间, 依次检验了一下文章中的内容, 发现和实际的表现出入甚远. 常见的几种结论 Case 1 drawable会剔除其它密度, mipm…

    Android 2023年4月18日
    00
  • Android报”ActivityNotFoundException”如何解决?

    Android应用程序在运行过程中,如果没有正确设置相关的配置参数或者代码逻辑存在问题,就会导致某些异常情况的出现。其中,”ActivityNotFoundException”是其中比较常见的一种异常,它表示无法找到指定的Activity组件,本文将从原因和解决办法两个方面详细讲解。 一、异常原因 包名或类名指定错误 如果在AndroidManfiest.x…

    Android 2023年4月3日
    00
  • 在线文本翻译能力新增14个直译模型,打造以中文为轴心语言的翻译系统

    经济全球化的今天,人们在工作和生活中经常会与外语打交道。相较传播性较广的英语而言,其他语种的识别和阅读对大多数人来说是一件难事,此时就需要借助语言翻译软件来帮助理解。 华为 HMS Core 机器学习服务(ML Kit)翻译功能提供了多种翻译模式,不仅可以满足应用出行购物、网络社交等日常场景,还提供办公文档、视频字幕等专业翻译服务,满足多种语言和场景应用。其…

    Android 2023年4月18日
    00
  • Android数据结构-SparseArray实现原理

    SparseArray家族 SparseArray基于键值对存储数据,key为int,value为object,简单使用如下: //声明 SparseArray<String> sparseArray= new SparseArray<>(); //增加元素,append方式 sparseArray.append(0, “myValu…

    Android 2023年4月18日
    00
  • Android Banner – ViewPager 02

    Android Banner – ViewPager 02 现在来给viewpager实现的banenr加上自动轮播 自动轮播的原理,使用handler的延迟消息来实现。 自动轮播实现如下内容 开始轮播&停止轮播 可配置轮播时长、轮播方向 通过自定义属性来配置轮播时长,方向 感知生命周期,可见时开始轮播,不可见时停止轮播 感知手指触摸,触摸按下时停止…

    Android 2023年4月17日
    00
  • 华为运动健康服务Health Kit 6.10.0版本新增功能速览!

    华为运动健康服务(HUAWEI Health Kit)6.10.0 版本新增的能力有哪些? 阅读本文寻找答案,一起加入运动健康服务生态大家庭! 一、 支持三方应用查询用户测量的连续血糖数据 符合申请Health Kit服务中开发者申请资质要求的企业开发者,可申请访问用户的心率、压力、血糖等健康数据。 在新版本中,血糖数据类型在原有指尖血糖数据开放的基础上,新…

    Android 2023年4月17日
    00
  • 音频编辑服务UI SDK接入指导及常见问题

    华为 HMS Core 音频编辑服务(Audio Editor Kit)是华为帮助全球开发者快速构建各类应用音频能力的服务,汇聚了华为在音乐、语音等相关音频领域的先进技术。音频编辑服务为开发者们提供音频基础编辑、AI配音、音源分离、空间渲染、变声、多种音效等丰富的音频处理能力,以及性能优异、简单易用、开放性强的接口,开发者们可依据应用场景,在App中高效轻松…

    Android 2023年4月18日
    00
合作推广
合作推广
分享本页
返回顶部