常见问题解答

产品详情

网络和连接

数据

界面自定义

路由

模拟器

Workflows

产品详情

您的应用必须使用 Navigation SDK 实现对话框 每位用户必须接受的服务条款通知。此对话框提供了 同意服务条款的机会。该 条款。 使用 NavigationApi.showTermsAndConditionsDialog 方法显示包含条款的对话框。
谷歌手机地图支持的任何语言都会自动 适用于 Navigation SDK。 设备设置了默认系统语言,并且应用无法更改该设置;不过, 该应用支持 70 多种语言。

可以。启动后,LocationListener 会持续 在后台运行您的应用继续贴靠位置,并保持 方位。

可以。创建或更改路由时,RouteChangeListener 用于提供多段线。

否,Navigation SDK 不需要 Google Maps Mobile 要安装在设备上。
否,Navigation SDK 目前不提供此功能 。
是的。默认情况下,系统会提供并显示路况方向。
哪个 Navigation SDK 只有移动服务客户才能使用 API?

Navigation SDK 中有几个 API 专供移动服务客户使用,Google 按交易计费。如果您不是移动服务客户,则以下方法不可使用:

Navigation SDK 支持哪些版本的 JDK?
Navigation SDK 支持 Oracle 主动支持的 Java SE LTS 版本。这些版本在 Oracle Java SE 支持路线图中列为具有高级支持

网络和连接

Navigation SDK 如何处理网络连接不佳?
Navigation SDK 会为每个行程预缓存路线。 预缓存的信息包含 15-20 分钟的路由信息, 并在用户偏离路线时提供备选路线。通过 Navigation SDK 使用设备 GPS 和 传感器。
Navigation SDK 如何处理不良或丢失的 GPS 信号?

在导航开始且 Navigation SDK 收到 至少显示一次 GPS 信号,屏幕会显示“正在搜索 GPS...”消息 以下情况:

  • 上次接收到 GPS 信号的时间已超过 10 秒。
  • 自上次接收 GPS 信号以来路线位置移动超过 500 米。

如果 SDK 在很长一段时间内未收到 GPS 信号,那么路线沿途进度(在应用中以 V 形图标的位置表示)可能会变慢,直到完全停靠为止。在这种情况下,地图上的 V 形将保持在上次 GPS 信号指示的位置。SDK 不会因未收到 GPS 信号而自动退出导航模式。不过,在再次收到信号之前,它可能无法提供指导。

有离线模式吗?
否,Navigation SDK 不提供 离线模式不过,SDK 确实提供了 旅行的理想选择

数据

我能否在开始前检索行程中的所有经停点/目的地 路线?

可以。要检索路线的路线,请调用 Navigator.getRouteSegments()

路线的起点是否提供精细路线导航?
是的。Navigation SDK 提供了路线段列表。 此外,用户还可以滑动浏览标题中的路线卡片 查看每项操作
如何向应用用户传达预计到达时间?

如需向应用用户提供预计到达时间,请按以下步骤操作:

  1. 使用 Navigator.getTimeAndDistanceList()
  2. 将此信息转发到客户端应用,您可以 司机预计到达时间。
RoadSnappedLocationProvider 是否可以用于获取用户的 当前捕获的位置(如果导航不在前台运行)?

可以。RoadSnappedLocationProvider在 默认设置为背景颜色

Navigation SDK 是否支持地理围栏?

否。就导航而言,remainingTimeOrdistanceChangeListener 比地理围栏有优势地理围栏可能不会考虑 并且可能没有像地图绘制的 用户正在导航。

您可以使用 remainingTimeOrdistanceChangeListener

  1. 设置阈值以确定回调的频率。
  2. 查看到目的地的剩余距离。

例如,如果您将阈值设为 1 亿, 当到目的地的距离发生变化时,您会收到回调 大约 1 亿随着距离的减少,您可以将此阈值更新为较小的 值,从而更频繁地收到回调。然后,检查与 确定您是否距离上车点/下车点足够近。

我可以停用导航应用程序在后台运行时的通知吗?

可以。使用Navigator.setHeadsUpNotificationEnabled 来控制通知此方法具有布尔值参数。FALSE 停用通知;TRUE 可启用通知功能。

交易记录器会使用唯一 ID 跟踪上车点和下车点, Google 会将其记录下来,以用于商品分析。如果您是移动服务客户,Google 建议您将 NavigationTransactionRecorder至 记录您的交易记录。

界面自定义

我可以用颜色标识最佳路线选项吗?
不可以。目前不支持对特定路线选项进行颜色标注。
Navigation SDK 是否可以显示最终目的地的预计到达时间?

可以。请使用以下方法:

  1. 使用 Navigator.getTimeAndDistanceList()
  2. 使用“ ”隐藏当前航点的预计到达时间 NavigationFragment.setEtaCardEnabled(false)
  3. 渲染最终到达目的地的预计到达时间。
如何隐藏预计到达时间更新?

您可以通过调用 navigationView.setEtaCardEnabled(false) 停用预计到达时间卡片。

页眉和页脚卡片支持哪些界面自定义?

使用 StylingOptions 设置背景 颜色样式设置。要隐藏或显示页眉和 请使用 setHeaderEnabledsetFooterEnabled 个成员函数: NavigationFragment

路由

我可以提供具体路线吗 或移除备选路线?
否。默认情况下,系统会提供多条路由,并且最快路线具有优先级。 您可以通过添加偏好设置(如“避免 高速公路和收费站”。添加航点也会影响路线。
我能否向应用用户显示目标标签(而非默认标签) 目的地?

可以。创建一个 Marker,其中包含 目的地和纬度/经度的自定义标题。通过 Navigation SDK 显示自定义标题和坐标 (在NavigationMap上)。

我可以使用 Navigation SDK 跟踪与指定路径的偏差吗?

可以。使用 Navigator.setRouteChangedListener 执行以下操作: 当路线发生变化或有新路线推荐时接收通知:

  1. 注册一个监听器,用于检查设备沿路线的位置 使用 Navigator.setRouteChangedListener 方法。
  2. 将代码添加到回调事件处理脚本 onRouteChanged
    • 向应用用户发送消息,提供更新后的预计到达时间和距离信息。
    • 跟踪设备的位置。
    • [可选] 添加您的应用所需的其他功能来处理 当用户偏离指定路线时触发。
用户是否可以在不完成路线的情况下退出导航?

可以。调用 Navigator.stopGuidance() 方法以 停止导航。

模拟器

模拟器是否支持路线更改?

可以。致电simulateLocationsAlongNewRoute 模拟包含路线变更的行程。simulateLocationsAlongExistingRoute 方法会忽略对现有路由的更改。

Workflows

如何在关闭包含 导航 fragment?

导航通知在导航期间始终可见, 当 activity 关闭时触发。当车辆到达 目的地、导航停止,并且通知消失。

如需处理对通知的点击,请使用 Navigator.startGuidance(intent resumeIntent)。 当应用用户点击通知时,resume intent 就会触发。 通常,Navigator.startguidance(getIntent()) 是从 主 activity,当用户点击通知时,它会调用该 activity。