隐私合规接入指南
1. 文档说明
本文档用于规范维智定位SDK 隐私合规接入流程,解决APP接入SDK隐私授权合规问题,适用于业务端控制隐私弹窗的接入场景。
核心接入原则:所有隐私合规接口必须在 WzLocationClient 实例化之前调用,否则SDK定位能力会被拦截,导致功能异常。
2. 合规核心接口定义
2.1 隐私政策展示配置接口
用于配置App是否包含SDK隐私政策、是否启用SDK内置隐私弹窗,为前置基础合规接口。
/** 设置包含隐私政策,并展示用户授权弹窗
* 必须在 WzLocationClient 实例化之前调用
*
* @param context 上下文
* @param isContains 隐私权政策是否包含维智隐私权政策 true=包含
* @param isShow 隐私权政策是否弹窗展示告知用户 true=启用SDK内置弹窗,false=禁用SDK内置弹窗(业务自定义弹窗)
*/
public static synchronized void updatePrivacyShow(Context context, boolean isContains, boolean isShow);
2.2 用户隐私授权状态设置接口
用于告知SDK用户是否已同意隐私政策,需在用户完成授权后调用。
/**
* 设置是否同意用户授权政策
* 必须在 WzLocationClient 实例化之前调用
*
* @param context 上下文
* @param isAgree 隐私权政策是否取得用户同意 true=用户已同意
*/
public static synchronized void updatePrivacyAgree(Context context, boolean isAgree);
3. 标准接入方案(推荐:APP自行控制隐私弹窗)
3.1 方案说明
集成方APP已有隐私政策弹窗、合规授权页面时,需禁用SDK自带隐私弹窗,由业务侧自主实现隐私展示、用户授权逻辑,规避弹窗冲突,满足应用商店合规审核要求。
参数关键修改:将原有默认参数 isShow=true 修改为 isShow=false
3.2 标准接入代码
严格遵循如下调用顺序,不可颠倒、不可遗漏:
// 1. 声明App隐私政策已包含维智SDK隐私政策,禁用SDK内置隐私弹窗(业务自主实现弹窗)
MapsInitializer.updatePrivacyShow(this, true, false);
// 2. 用户阅读并同意隐私政策后,设置授权状态为已同意
MapsInitializer.updatePrivacyAgree(this, true);
4. 两种接入模式对比
| 调用代码 | 效果说明 | 适用场景 |
|---|---|---|
MapsInitializer.updatePrivacyShow(this, true, true) | 启用SDK内置隐私弹窗,SDK自动弹出授权窗口 | 项目无自定义隐私弹窗,完全依赖SDK原生合规弹窗 |
MapsInitializer.updatePrivacyShow(this, true, false) | 禁用SDK内置隐私弹窗,仅声明已集成SDK隐私政策,无自动弹窗 | 通用推荐场景,项目自有隐私合规页面/弹窗,自主管控授权逻辑 |
5. 强制合规约束与流程规范
5.1 时序约束(硬性规则)
隐私合规接口调用 → WzLocationClient 实例化,顺序不可颠倒,必须先完成合规配置,再初始化定位SDK。
5.2 参数合规约束
- isContains = true:App隐私政策文档中,必须完整内嵌或引用维智定位SDK隐私权政策,满足合规公示要求;
- isShow = false:关闭SDK弹窗能力,所有隐私告知、用户授权交互由业务App自主实现;
- isAgree = true:仅用户主动阅读、确认同意隐私政策后才可设置,用户未授权前禁止赋值true,禁止静默授权。
5.3 标准合规流程
- App启动后,展示业务自定义隐私政策弹窗/页面;
- 用户点击【同意】:执行合规接口配置,设置隐私参数、授权状态;
- 合规配置完成,初始化 WzLocationClient,正常使用定位功能;
- 用户点击【拒绝】:不执行任何合规接口,禁止初始化定位SDK,关闭定位相关能力。
6. 常见问题说明
- 问题:初始化定位客户端后调用合规接口,导致定位功能失效 原因:违反调用时序规则,必须先合规、后初始化SDK;
- 问题:设置 isShow=false 后无隐私弹窗 正常现象:该参数为禁用SDK弹窗,需业务自行实现隐私授权弹窗;
- 问题:上架合规审核不通过 排查点:确认App隐私政策已包含SDK隐私条款、用户授权逻辑完整、无静默初始化SDK行为。
