监管部门要求在用户点击隐私协议弹框中 同意 按钮之前,App 不可以调用相关敏感 API。为应对此监管要求,mPaaS Android 10.1.68 基线的全部版本、10.1.60 基线的 10.1.60.5 及以上版本和 10.1.32 基线的 10.1.32.16 及以上版本对此要求进行了支持。如果您的工程接入了 框架 组件,请参考本文档对工程进行改造。
使用说明
您需要在应用中弹出隐私权限弹窗,并在用户点击同意之后调用框架的接口发送 同意 的广播,框架收到广播后会完成初始化,还会在 sharedpreference
中记录用户同意的行为,初始化完成时通过回调的方式通知您。您只有收到回调后,才能正常使用 mPaaS 各组件的能力。
操作步骤
弹出隐私弹框的 Activity 不可以继承 mPaaS 的 BaseActivity,因为 BaseActivity 会进行埋点数据采集,会导致 App 在同意隐私政策之前采集隐私数据。
在
meta-data
中配置隐私权限弹框的开关。该配置的默认状态是关闭。<meta-data android:name="privacy_switcher" android:value="true"></meta-data>
使用以下接口,发送 同意 的广播。
说明只有在单击 同意 后才发送广播。
QuinoxlessPrivacyUtil.sendPrivacyAgreedBroadcast(Context context);
用户是否已经同意隐私权限的使用。
说明调用此 API 时,请先初始化 mPaaS 框架。
QuinoxlessPrivacyUtil.isUserAgreed(Context context);
更新用户同意使用隐私权限的标记,可以方便您在特定的场景下再次弹窗。
QuinoxlessPrivacyUtil.setUserAgreedState(Context context, **boolean **agreed);
框架初始化完成的回调。
使用
QuinoxApplication
:需要在onMPaaSFrameworkInitFinished
之后使用 mPaaS 的能力。说明如果您需要使用热修复功能则必须使用
QuinoxApplication
。未使用
QuinoxApplication
:需要在IInitCallback
的onPostInit
之后使用 mPaaS 的能力。QuinoxlessFramework.setup(this, new IInitCallback() { @Override public void onPostInit() { } });
如果您使用的是 10.1.68.42 及以上版本基线且需要清除隐私状态,请在以上所有调用之前调用
QuinoxlessPrivacyUtil.clearPrivacyState(context);
。