常见问题解答
商品详情
- 应如何显示 Navigation SDK 服务条款通知?
- 语音导航支持哪些语言?
- 当驾驶员退出导航模式时,方位是否保持不变?
- 在开始或更改路线时,可以使用多段线吗?
- 应用用户是否需要安装移动版 Google 地图?
- Navigation SDK 可以识别餐厅和其他目的地附近的停车场吗?
- 接近转弯点时,Navigation SDK 会显示车道中的交通方向吗?
- Navigation SDK 支持哪些版本的 JDK?
网络
数据
- 在开始路线之前,是否可以检索行程中的所有经停点/目的地?
- 路线的起点是否提供精细路线导航?
- 预计到达时间 (ETA) 如何传达给应用用户?
- 如果导航不在前台运行,是否可以使用
RoadSnappedLocationProvider
获取驾驶员当前的贴靠位置? - Navigation SDK 是否支持地理围栏?
- 我可以在导航应用在后台运行时停用通知吗?
- 如何查看 Google 保留的事务日志?
界面自定义
路由
- 我可以提供具体路线给司机或移除备选路线吗?
- 我可以为驱动程序显示与默认目标位置不同的其他标签吗?
- 我可以使用 Navigation SDK 跟踪与指定路径的偏差吗?
- 司机可以在不完成路线的情况下退出导航吗?
模拟器
工作流
商品详情
-
您的应用必须实现一个对话框,其中包含每个驾驶员都必须接受的 Navigation SDK 服务条款通知。此对话框可让驾驶员同意服务条款。条款的文本文件随 Navigation SDK 提供。
使用
NavigationApi.showTermsAndConditionsDialog
方法显示包含字词的对话框。 - Google 地图移动版支持的所有语言均自动可供 Navigation SDK 使用。 设备具有默认系统语言,并且应用无法更改该设置;不过,应用可以支持 70 多种语言。
-
是。启动后,
LocationListener
会继续在后台运行。您的应用继续紧贴位置并保持方位。 -
是。创建或更改路线时,
RouteChangeListener
会提供多段线。 - 不需要,Navigation SDK 不要求在设备上安装 Google Maps Mobile。
- 不可以,Navigation SDK 目前不提供此功能。
- 可以。默认情况下,系统会提供并显示路况方向。
- Navigation SDK 支持哪些版本的 JDK?
- Navigation SDK 支持 Oracle 主动支持的 Java SE 的 LTS 版本。这些版本在 Oracle Java SE 支持路线图中列为具有高级支持。
网络
- Navigation SDK 如何处理连接不佳的问题?
- Navigation SDK 会为每个行程预缓存路线。预缓存的信息包括 15-20 分钟的路线信息,以及司机偏离路线时的备选路线信息。Navigation SDK 使用设备 GPS 和传感器估测位置。
- 是否有可用的离线模式?
- 不可以,Navigation SDK 目前不提供离线模式;不过,该 SDK 确实为行程提供预缓存的信息。
数据
- 我是否可以在开始路线之前检索行程中的所有经停点/目的地?
-
是。如需检索路线的路线,请调用
Navigator.getRouteSegments()
。 - 路线的起点是否提供精细路线导航?
- 可以。Navigation SDK 提供了路线段列表。此外,驾驶员还可以滑动浏览标题中的路线卡片,查看每项操作。
- 如何向应用用户传达预计到达时间?
-
如需向应用用户提供预计到达时间,请按以下步骤操作:
- 使用
Navigator.getTimeAndDistanceList()
检索所有航点的时间和距离。 - 像查看司机预计到达时间一样将此信息转发到客户端应用。
- 使用
-
如果导航不在前台运行,是否可以使用
RoadSnappedLocationProvider
获取驾驶员当前的贴靠位置? -
是。
RoadSnappedLocationProvider
默认在后台运行。 - Navigation SDK 是否支持地理围栏?
-
不可以。在导航中,
remainingTimeOrdistanceChangeListener
优于地理围栏。地理围栏可能不会考虑道路几何图形,也可能不以司机正在导航的确切点为中心。您可以使用
remainingTimeOrdistanceChangeListener
大致估算此功能。- 设置阈值以确定回调的频率。
- 查看到目的地的剩余距离。
例如,如果将阈值设置为 100 米,则当到目的地的距离变化 100 米时,您会收到回调。随着距离的缩短,您可以将此阈值更新为较小的值,并接收更频繁的回调。然后,检查剩余距离,以确定您是否距离上车点/下车点足够近。
- 我可以停用导航应用在后台运行时的通知吗?
-
是。使用
Navigator.setHeadsUpNotificationEnabled
控制通知。此方法具有布尔值参数。FALSE
停用通知;TRUE
启用通知。 -
交易记录器会使用唯一 ID 跟踪上车点和下车点,Google 会记录该 ID 以用于商品分析。如果您是移动服务客户,Google 建议您实现
NavigationTransactionRecorder
来记录交易记录。
界面自定义
- 我可以用颜色标识最佳路线选项吗?
- 不可以。目前不支持对特定路线选项进行颜色编码。
- Navigation SDK 能否显示最终目的地的预计到达时间?
-
是。请使用以下方法:
- 使用
Navigator.getTimeAndDistanceList()
检索所有航点的时间和距离。 - 使用
NavigationFragment.setEtaCardEnabled(false)
隐藏当前航点的预计到达时间。 - 渲染最终到达目的地的预计到达时间。
- 使用
- 如何隐藏预计到达时间更新?
-
您可以通过调用
navigationView.setEtaCardEnabled(false)
停用预计到达时间卡片。 -
使用
StylingOptions
可设置背景颜色样式。如需隐藏或显示页眉和页脚,请使用NavigationFragment
的setHeaderEnabled
和setFooterEnabled
成员函数。
路由
- 我可以为司机提供具体路线或移除备选路线吗?
- 否。默认情况下,系统会提供多条路由,并且优先路由最快的路由。 您可以在请求中添加“避开高速公路和收费站”等偏好设置来影响默认路线。添加航点也会影响路线。
- 我可以向应用用户显示与默认目标位置不同的目的地标签吗?
-
是。创建一个
Marker
,其中包含目的地的自定义标题和纬度/经度。Navigation SDK 会在NavigationMap
上显示自定义标题和坐标。 - 我可以使用 Navigation SDK 跟踪与指定路径的偏差吗?
-
是。使用
Navigator.setRouteChangedListener
可在路由发生更改或建议新路由时接收通知:- 注册一个监听器,以使用
Navigator.setRouteChangedListener
方法检查设备沿路线的位置。 - 将代码添加到回调事件处理脚本
onRouteChanged
:- 向应用用户发送消息,提供更新后的预计到达时间和距离信息。
- 跟踪设备的位置。
- [可选] 添加您的应用所需的其他功能,以便在司机偏离指定路线时处理这些功能。
- 注册一个监听器,以使用
-
是。调用
Navigator.stopGuidance()
方法可停止导航。
模拟器
- 模拟器是否支持路线更改?
-
是。调用
simulateLocationsAlongNewRoute
可模拟包含路线变更的行程。simulateLocationsAlongExistingRoute
方法会忽略对现有路由的更改。
工作流
- 关闭包含导航 fragment 的 activity 后,如何关闭通知?
-
当 activity 关闭时,导航通知在导航期间保持可见。当车辆到达目的地时,导航会停止,并且通知会消失。
如需处理对通知的点击,请使用
Navigator.startGuidance(intent resumeIntent)
。resume intent
在应用用户点击通知时触发。通常,Navigator.startguidance(getIntent())
是从主 activity 调用的,主 activity 会在应用用户点击通知时调用该 activity。