自定义导航体验

Navigation SDK 提供了将导航体验集成到您的应用中的不同方式。本页面介绍了什么是自定义导航体验,以及自定义导航体验与 Navigation SDK 中提供的其他导航体验的不同。

什么是自定义导航体验?

实现 Navigation SDK 的主要方法是使用 Google 导航体验,该模式可让您嵌入精细导航体验,该体验使用 Google 提供的界面元素和视觉元素,类似于 Google 地图应用中的导航体验。如果您需要的灵活性比 Google 导航体验更高,则可以实现自定义导航体验。自定义导航体验是指从完全消除精细导航,只将导航作为后台进程运行导航,到将高度自定义的导航体验投影到与运行导航的设备分开的屏幕上,不一而足。采用自定义导航体验时,应用会调用 Navigation SDK 来请求精细导航 Feed,然后您提供和管理用户在导航体验中看到的界面元素和视觉元素。虽然使用 Google 导航体验通常更易于实现,但打造自己的自定义导航体验可以实现更多自定义功能。

创建自定义导航体验时,应用使用以下流程调用 Navigation SDK 来启动、运行和停止导航:

  1. 开始导航。与 Google 导航体验一样,自定义导航体验仍然涉及创建导航实例和设置目的地。不过,对于自定义导航体验,要实现此目的,您可以首先使用包含状态的非界面对象(可以使用视图控制器,也可以不使用视图控制器)建立导航会话。

    如需了解详情,请参阅启用精细数据 Feed

    查看演示:Navigation SDK 的下载中包含了一个演示,您可以运行演示来查看该导航体验示例,该示例会在通过标准导航进行精细导航与仅显示设备位置沿道路多段线移动的导航体验之间切换。

  2. 有效导航。下面是 Google 提供的导航体验和自定义导航体验之间的另一个主要区别。您可以启用精细导航 Feed 并实现事件处理脚本,而不是将指导移交给 Navigation SDK 的内置事件管理器。这样,您的体验就可以响应监听导航事件中所述的事件。

  3. 结束导航。与 Google 导航体验一样,自定义导航还要求您以最适合应用体验的方式终止导航。

您在什么情况下可以使用自定义导航体验?

下表介绍了一些自定义导航场景。

示例场景

简要步骤

您需要为小型设备(如两轮车辆)提供纯文本驾驶指导。

创建导航器,并将精细导航设置为小屏幕设备作为数据 Feed,同时导航器在驾驶员的手机上运行且在当前视图之外运行。

您希望将应用作为汽车服务提供给使用 Android Auto 的驾驶员

  1. 设置汽车服务。
  2. 设置 Navigation SDK 项目。
  3. 建立导航器(如果尚未创建)。
  4. 启用精细导航 Feed。
  5. 在 Auto 应用 surface 上绘制地图,并填充您配置的数据 Feed 中的字段。

如需了解详情,请参阅为 Android Auto 启用导航

使用应用的驾驶人需要查看大部分行程的概览地图,只提供最少量的城市街道精细导航。

您的应用应允许驾驶员根据需要进入和退出 Google 导航体验,而不改变导航器的目的地和行程模式设置。