乐趣区

关于android:运动健康路线导入助力用户轻松导航

华为 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);

理解更多详情 >>

拜访华为开发者联盟官网
获取开发领导文档
华为挪动服务开源仓库地址:GitHub、Gitee

关注咱们,第一工夫理解 HMS Core 最新技术资讯~

退出移动版