背景:
現(xiàn)在用戶未同意隱私政策前就獲取了用戶個(gè)人信息(mac地址,imei碼),所以在啟動(dòng)頁(yè)都得加個(gè)隱私政策詢問(wèn)彈框,同意后再初始化第三方SDK
作用:
符合要求
效果圖:
隱私彈框.jpg
思路:
用SP存儲(chǔ)用戶是否同意了隱私政策,在啟動(dòng)頁(yè)如果SP存的值為true,就走正常流程搜贤,如果為false,就彈框詢問(wèn)钝凶,用戶同意后再調(diào)Application里面的初始化第三方SDK仪芒,再走正常流程
關(guān)鍵代碼:
SPUtils
public static void saveIsAgreeYSAndXY(){
putBoolean(SPKey.IS_AGREE_YS_AND_XY,true);
}
public static boolean getIsAgreeYSAndXY(){
return getBoolean(SPKey.IS_AGREE_YS_AND_XY,false);
}
MyApplication
public class MyApplication extends MultiDexApplication {
@Override
public void onCreate() {
super.onCreate();
// 友盟預(yù)初始化
UMConfigure.preInit(mInstance,BuildConfig.UMENG_APPKEY, BuildConfig.FLAVOR);
initSDK();
}
public void initSDK(){
if(SPNoCleanUtil.getIsAgreeYSAndXY()){
//友盟初始化,因?yàn)轫?xiàng)目中的新版友盟腿椎,組件化SDK,沒(méi)有用到Push功能桌硫,傳null
UMConfigure.init(mInstance, BuildConfig.UMENG_APPKEY, BuildConfig.FLAVOR, UMConfigure.DEVICE_TYPE_PHONE, null);
// 選用AUTO頁(yè)面采集模式
MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.AUTO);
//初始化其他SDK
}
}
}
StartupActivity(啟動(dòng)頁(yè))
public class StartupActivity extends BaseActivity<StartupIView, StartupPresenter> implements StartupIView {
@BindView(R.id.iv_ad)
ImageView ivAd;
@BindView(R.id.tv_ad_countdown)
TextView tvAdCountdown;
@BindView(R.id.fl_ad)
FrameLayout flAd;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_startup);
ButterKnife.bind(this);
//開(kāi)始倒計(jì)時(shí),改成隱私彈框
startCountDown();
}
private void startCountDown() {
if(!SPNoCleanUtil.getIsAgreeYSAndXY()){
AppDialogUtils.guideYinsiDialog(mContext, new View.OnClickListener() {
@Override
public void onClick(View view) {
}
}, new View.OnClickListener() {
@Override
public void onClick(View view) {
}
}, new View.OnClickListener() {
@Override
public void onClick(View view) {
//點(diǎn)了同意按鈕
toNext();
}
});
}else {
toNext();
}
}
private void toNext() {
if(!SPNoCleanUtil.getIsAgreeYSAndXY()){
SPNoCleanUtil.saveIsAgreeYSAndXY();
((MyApplication)getIView().getContext().getApplicationContext()).initSDK();
}
if (!SPUtils.getIsLogin()) {
IntentUtils.startGuideActivity(mContext);
} else {
IntentUtils.startMainActivity(mContext);
}
finish();
}
}
隱私政策彈框代碼就不給出了,這里代碼也簡(jiǎn)單啃炸,關(guān)鍵是思路要對(duì)