自定义导航体验

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

什么是自定义导航体验?

实现 Navigation SDK 的主要方式是使用 Google 导航体验,这样您就可以嵌入使用 Google 提供的界面元素和视觉效果的精细导航体验,类似于 Google 地图应用中的导航体验。如果您需要比 Google 导航体验更灵活的体验,可以实现自定义导航体验。自定义导航体验涵盖各种形式,从完全不提供转向引导、仅将导航作为后台进程运行,到将高度自定义的引导体验投射到运行导航的设备以外的屏幕上。借助自定义导航体验,您的应用会调用 Navigation SDK 来请求精细导航 Feed,然后您提供并管理用户在导航体验中看到的界面元素和视觉效果。虽然使用 Google 导航体验通常更容易实现,但构建您自己的自定义导航体验可以实现更多自定义。

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

  1. 开始导航。如需开始自定义导航体验,请创建导航实例并设置目的地。使用 NavigationApi.getNavigator 获取 Navigator 实例,然后使用 navigator.registerServiceForNavUpdates 注册更新。

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

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

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

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

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

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

示例场景

简要步骤

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

创建导航器,并将精细导航设置为向小屏幕设备提供的数据 Feed,同时导航器在驾驶员的手机上运行,但不在其直接视野范围内。

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

  1. 设置汽车服务。
  2. 设置 Navigation SDK 项目。
  3. 如果您还没有导航员,请指定一个。
  4. 启用精细导航 Feed。
  5. 在车载应用界面上绘制地图,并根据您配置的数据 Feed 填充字段。

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

使用您应用的司机希望在大部分行程中看到总览图,仅在城市街道上看到最少的精细导航。

您的应用应允许司机根据需要进入和退出 Google 导航体验,而无需更改导航器的目的地和行程模式设置。