AI 地图
产品服务
解决方案
文档与支持
定价
更新时间: 2026/08/19 09:53

使用定位能力时,需要同时处理隐私合规、AK、运行时权限、生命周期和平台差异。以下约束应在开发和上线前完成验证。

隐私合规与 AK
  • 在隐私政策中披露百度定位 SDK 采集和处理位置信息、设备信息及网络信息的用途。

  • 用户明确同意隐私政策后,才能调用 setAgreePrivacy(true)、checkAuthKey() 和定位接口。

  • Android、iOS 和 HarmonyOS NEXT 应分别使用与平台及应用标识匹配的 AK。不要在公开仓库、文档或日志中保存生产 AK。

  • Android 的 checkAuthKey() 完成仅表示设置 AK 时未抛出异常;实际鉴权失败仍会通过 locStatusType 为 3 的定位回调返回。

权限行为差异
  • Android:checkPermission() 会请求精确和大致位置权限,并非无界面的纯查询;guideSettingPermission() 可能跳转应用设置页。

  • iOS:checkPermission() 只读取当前状态;首次授权或被拒后的设置引导通过 guideSettingPermission() 处理。iOS 14 及以上还需处理近似位置状态。

  • HarmonyOS NEXT:checkPermission() 会在前台定位权限均未授予时发起申请;guideSettingPermission() 用于系统设置授权。

参数和坐标系
  • 默认坐标系为 bd09ll。与百度地图展示结合时建议保持 bd09ll;与其他数据源组合时,应先确认并统一坐标系。

  • timeInterval 和 singleLocatingTimeout 的单位均为秒。iOS 当前不使用 timeInterval,Android 当前不使用 singleLocatingTimeout。

  • 开启 isNeedAddress 会增加逆地理编码和 POI 数据处理,应只在业务需要时启用。

错误处理

成功和失败都会触发 onReceiveLocation。只有 locStatusType 等于 1 时才应使用经纬度;其他状态应结合 locStatusTypeDescription 给出权限、AK、网络或定位环境方面的提示。不要仅判断经纬度是否为 0。

生命周期与性能
  • 页面卸载或业务结束时调用 stopRequestLocationUpdates() 和 destroy()。

  • 连续定位应设置合理的时间间隔、距离阈值和停止条件,避免不必要的耗电。

  • 后台定位应仅在用户明确知情且业务确有需要时开启;不再需要时及时调用 disableLocInBackground()。

  • iOS 底层定位实例为共享实现,不建议在同一进程中同时创建多个相互独立的 BMapLocationClient。

数据安全

位置信息属于敏感个人信息。只采集业务必需的数据,传输时使用安全连接,限制存储时间和访问范围,避免在生产日志中输出精确坐标、完整地址、用户标识或 AK。

上一篇

接口说明

下一篇

单次定位
本篇文章对您是否有帮助?