当前位置: 首页 > news >正文

谷歌地图 | 与 Android 版导航 SDK 集成的最佳实践

谷歌最近宣布了导航 SDK,它可以让您将熟悉的 Google 地图逐向导航体验无缝集成到您的 Android 和 iOS 应用程序中。

这篇博文概述了一些最佳实践,您可以使用这些实践为您的 Android 应用程序使用导航 SDK 构建流畅、一致且可靠的导航体验。

与导航地图交互

与 Navigation SDK 集成时,您可以使用SupportNavigationFragment( 的包装器)NavigationView,也可以直接与 交互NavigationView。在大多数情况下,我们建议使用SupportNavigationFragmentNavigationView处理SupportNavigationFragment生命NavigationView周期回调,因此您无需自行管理它们。但是,如果您确实需要与 交互NavigationView,请谨慎管理生命周期方法和事件。

最佳实践

  • 尽可能使用SupportNavigationFragment而不是。NavigationView
  • 如果使用NavigationView,则在调用生命周期方法时使用严格排序。
  • 如果使用NavigationView,则从活动或片段调用生命周期事件,而不是同时从两者调用。

有关更多信息,请参阅导航 SDK 开发人员文档中的导航地图交互。

管理导航通知

无论用户是否设置了目的地,导航 通知都会在用户导航时显示,有助于确保位置更新的准确性。应用必须管理 Android 对从后台启动前台服务和从后台访问位置的限制,以最大限度地提高位置准确性、最大限度地减少电池消耗并避免内存泄漏。

最佳实践

  • 向应用程序用户请求“始终允许”位置权限。
  • 确保正确清理听众以清除导航通知。
  • 重新调用NavigationApi#initForegroundServiceManager方法时,先调用NavigationApi#clearForegroundServiceManager

有关更多信息,请参阅导航 SDK 开发人员文档中的后台位置使用情况。

GoogleMap与物体交互

除了允许您向应用添加导航体验之外,Android 版导航 SDK 还包含来自Android 版地图 SDK的非导航地图功能。非导航地图可通过GoogleMap类访问。APIGoogleMap允许您创建自定义地图体验,包括绘制多边形、自定义图标等。在GoogleMap应用中实现功能时,务必将非导航地图与导航地图分开,并管理GoogleMap与导航体验相关的生命周期。

最佳实践

  • GoogleMap在与导航体验不同的地图实例上实现功能。
  • 用于getMapAsync获取GoogleMap实例。

有关更多信息,请参阅导航 SDK 开发者文档中的GoogleMap 交互。

清理实例

清除不再需要的实例和会话对于避免内存泄漏和其他问题非常重要。特别是,一定要清除导航目的地并清理 GoogleMap 对象上的地图元素。

最佳实践

  • 使用Navigator#clearDestinations以及Navigator#cleanup导航会话何时完成。
  • 清理GoogleMap不再需要的元素。

有关更多信息,请参阅导航 SDK 开发人员文档中的实例清理。

其他建议

除了上面描述的实施最佳实践之外,以下建议还可以帮助确保您及时了解最新的导航 SDK 开发情况:

  • 使用 Maven 进行导航 SDK 构建
  • 使用最新的可用导航 SDK 版本。
  • 随时了解强制性服务公告。
  • 不要使用已弃用的方法。
  • 在 GitHub 上关注我们的演示应用程序。

开始与导航 SDK 集成。 查看导航 SDK API 文档和参考。您可以遵循这些最佳实践,帮助确保您的用户获得流畅、可靠的导航体验。

如果您想了解更多谷歌地图的新功能套件或者想立即集成到您的应用中,请立即联系谷歌地图一级代理商 Cloud Ace云一

电话:0755-26410916 邮箱:zixun@cloud-ace.com

http://www.lryc.cn/news/468453.html

相关文章:

  • 什么是 VolTE 中的 Slient Redial?它和 CSFB 什么关系?
  • docker 部署单节点的etcd以及 常用使用命令
  • 华为开放式耳机测评,南卡 、华为、Cleer开放式耳机超深度横评
  • 【Power Query】List.Select 筛选列表
  • Spring--4
  • django celery 定时任务 Crontab 计划格式
  • 动态应用程序安全测试 (DAST) 工具 Fortify WebInspect
  • 深入解析东芝TB62261FTG,步进电机驱动方案
  • Vue 常用的狗钩子函数
  • 【机器学习基础】激活函数
  • nnMamba用于糖尿病视网膜病变检测测试
  • 【Spring MVC】创建项目和建立请求连接
  • 台达A2伺服
  • ReactOS系统中搜索给定长度的空间地址区间中的二叉树
  • Postgresql中和时间相关的字段类型及其适用场景
  • 储能蓝海:技术革新与成本骤降引爆市场
  • java抽象类和接口
  • 法治在沃刷积分-刷文章浏览数
  • 【深度学习实验七】 自动梯度计算
  • JAVA毕业设计192—基于Java+Springboot+vue的个人博客管理系统(源代码+数据库+万字论文+开题+任务书)
  • must be ‘pom‘ but is ‘jar‘解决思路
  • STM32启动文件浅析
  • h5页面与小程序页面互相跳转
  • 探索 JavaScript 事件机制(四):React 合成事件系统
  • openlayers 封装加载本地geojson数据 - vue3
  • 手机号码携号转网查询接口-在线手机号码携号转网查询-手机号码携号转网查询API
  • yolo目标检测和姿态识别和目标追踪
  • Docker搭建开源Web云桌面操作系统Puter和DaedalOS
  • FAQ-为什么交换机发给服务器的日志显示的时间少8小时
  • [表达式]真假计算