HarmonyOS Car Kit — 下车步行导航流转(Walk Navi Hop)详解

55 阅读5分钟

华为第四期开发者活动

HarmonyOS Car Kit — 下车步行导航流转(Walk Navi Hop)详解

在智能出行生态下,用户的导航体验往往跨越多个场景。例如:先是驾车导航到目的地附近,然后下车继续步行导航。为了实现这一类“导航无感切换体验”,HarmonyOS Car Kit 推出了 下车步行导航流转(Walk Navi Hop) 功能,让车机导航能“平滑”流转至手机端的步行导航服务。(华为开发者)


什么是 “下车步行导航流转(Walk Navi Hop)”

“下车步行导航流转”(Walk Navi Hop)指的是当用户结束驾车导航并准备下车时,系统能够自动将当前导航状态和目的地信息从车机端传递给地图应用(通常是手机端),并触发 步行导航任务 的启动。(华为开发者)

换句话说,就是当驾驶结束后,车机导航会发出指令,地图应用收到后自动切换到步行导航模式,让用户无需重复输入目的地就能继续导航。(华为开发者)


能力的核心价值

下车步行导航流转的推出,主要解决以下问题:

  • 导航不中断体验:用户从车内导航结束后依然希望顺畅地继续获取方向引导,无需手动重新搜索目的地。
  • 自动唤起步行导航:地图应用能自动接收导航任务并启动步行模式,提高用户体验。
  • 跨设备协同:桥接车机导航系统与手机地图应用,提升设备之间的数据联动能力。

核心原理与触发机制

系统触发机制

当车辆停靠并且导航结束后,车机系统会发送一个 标准导航指令(START_NAVIGATION) 给地图应用,表示要开始新的导航状态——即步行导航。(华为开发者)

地图应用注册了对系统导航状态变化的监听后,就可以捕获这个事件,并据此自动执行步行导航任务。(华为开发者)


地图应用如何接收事件

为了能正确响应下车导航流转事件,地图应用 需要注册相关的监听机制,例如:

  • 监听导航状态变化事件
  • 在事件回调中判断导航结束并触发步行导航
  • 根据传递的导航目的地数据启动新的导航任务

这样就实现了车机导航向步行导航的平滑切换。(华为开发者)


典型使用流程(逻辑层面)

下车步行导航流转通常包含以下几个关键步骤:


1 注册导航状态监听

在地图应用中,通过 Car Kit 或 HiCar SDK 注册导航状态监听器,以便接收系统发来的导航变更指令。

 // 示例伪代码
 NavigationManager.registerNavigationStatusListener((status) => {
   // 当接收到START_NAVIGATION指令时触发处理
 });

2判断导航结束

当监听回调触发并发现导航状态变更为结束状态时,需要从状态对象中获取当前目的地、坐标等信息。

 if (status.event === "START_NAVIGATION") {
    // 获取目的地信息
    const destination = status.destination;
 }

3启动步行导航

获得终点/目的地后,在地图应用内调用步行导航服务(例如 Navi Kit),规划步行路线并启动引导。

 startWalkingNavigation(destination);

实际实现中可以结合 HMS Navi Kit 进行路线规划与引导显示。(华为开发者)


使用场景举例

场景用户体验
停车后至商场入口停车导航结束后自动接管步行引导
旅游景区步行路线车内导航结束自动切换到步行游览导航
城市共享停车自动流转到最近停车点步行导航

总结来说,这项功能适合车队服务、旅游类导航、城市共享停车等多种场景,提升用户在不同导航状态间的无感切换体验。


开发者注意事项

为了确保 Walk Navi Hop 功能正常工作,开发者在集成时应注意以下几点:


1. 注册正确的监听

地图应用需要预先注册导航监听事件,否则无法获取车机发来的导航指令。(华为开发者)


2. 权限配置

确保应用配置了相关权限和能力,否则可能收不到导航指令或无法启动导航服务。具体权限包括 HiCar 权限、Car Kit 权限等。(华为开发者)


3. 与导航引擎协作

Walk Navi Hop 是流程层面的触发机制,地图应用仍需结合具体的 导航引擎(如 HMS Navi Kit) 来执行步行路由规划与导航引导。(华为开发者)


总结

下车步行导航流转(Walk Navi Hop) 是 HarmonyOS Car Kit 为 提升导航连贯性和跨设备体验 提供的一项重要能力。它能够:

✔ 将车内结束导航的状态自动传递给地图应用 ✔ 自动触发并启动步行导航 ✔ 实现用户体验在车内与步行间的无缝流转

对于希望打造优质智能出行体验的开发者来说,这是一个非常实用的能力。希望这篇解析能帮助你理解这一功能,并在项目中顺利接入!