Navigation SDK 提供了多种将导航体验集成到应用中的方式。本页将介绍什么是自定义导航体验,以及它与 Navigation SDK 中提供的其他导航体验有何不同。
什么是自定义导航体验?
实现 Navigation SDK 的主要方式是使用 Google 导航体验,该体验可让您嵌入使用 Google 提供的界面元素和视觉效果的精细导航体验,类似于 Google 地图应用中的导航体验。如果您需要比 Google 导航体验更灵活的体验,可以实现自定义导航体验。自定义导航体验是指各种各样的体验,从完全不提供转弯指引,仅在后台进程中运行导航,到将高度自定义的指引体验投影到运行导航的设备以外的屏幕上,应有尽有。借助自定义导航体验,您的应用会调用 Navigation SDK 来请求逐向导航 Feed,然后您提供并管理用户在导航体验中看到的界面元素和视觉效果。虽然使用 Google 导航体验通常更容易实现,但构建自己的自定义导航体验可以实现更多自定义。
创建自定义导航体验时,您的应用会调用 Navigation SDK 来启动、运行和停止导航,具体流程如下:
开始导航。与 Google 导航体验一样,自定义导航体验仍然需要创建导航实例并设置目的地。不过,借助自定义导航体验,您可以通过以下方式实现此目的:首先使用
GMSNavigationService.createNavigationSession
建立导航会话,GMSNavigationService.createNavigationSession
是一个有状态的非界面对象,可以与视图控制器一起运行,也可以单独运行。如需了解详情,请参阅启用逐向数据 Feed。
查看演示:下载 Navigation SDK 后,您可以运行其中包含的演示,了解导航体验示例。该示例会在标准导航的逐向引导与仅显示设备位置沿道路折线移动的导航体验之间切换。
有效导航。以下是 Google 提供的导航体验与自定义导航体验之间的另一个主要区别。 您无需将指导信息传递给 Navigation SDK 的内置事件管理器,而是启用逐向导航信息并实现事件处理程序。这样一来,您的体验就可以响应监听导航事件中所述的事件。
结束导航。与 Google 导航体验一样,自定义导航也要求您以最适合应用体验的方式终止导航。
您可以在什么情况下使用自定义导航体验?
下表介绍了一些自定义导航场景。
示例场景 |
简要步骤 |
---|---|
您需要为小型设备(例如两轮车辆)提供纯文字的驾驶指导。 |
创建导航器并将精细导航设置为数据源,以提供给小屏幕设备,同时导航器在驾驶员的手机上运行,但不在驾驶员的直接视野范围内。 |
您希望将应用作为汽车服务提供给使用 Android Auto 的驾驶员。 |
如需了解详情,请参阅为 Android Auto 启用导航 |
使用您应用的司机希望在大部分行程中使用概览地图,仅在城市街道上使用最少的精细导航。 |
您的应用应允许司机根据需要进入和退出 Google 导航体验,而无需交替更改导航器的目的地和行程模式设置。 |