zhuguohui / PrivacyHelperForAndroidSupport

一个帮助完成隐私权限的库

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PrivacyHelper

用来完成隐私改造的库,可以在用户同意之前,拦截sdk的初始化。使项目快速的完成隐私改造。适配的是Android Support 依赖库

特点

  • 配置简单
  • 性能良好
  • 可以拦截activity的创建和ContentProvider的创建
  • 对原有app的侵入性小
  • 不改变原有app的启动流程

原理

使用CheckApp 作为Application 。在attachBaseContext 方法中判断用户是否同意隐私协议,如果同意。则不hook系统。否则hook系统拦截activity的创建和ContentProvider的创建。一旦用户同意再初始化ContentProvider和相关的sdk。可以参考我以下文章

Android 控制 ContentProvider的创建

通过拦截 Activity的创建 实现APP的隐私政策改造

使用

引入

下载文件作为依赖,注意AndroidX 需要使用androidX分支,support需要使用support分支

改造Application

将应用中的application 继承自CheckApp

public class MyApp extends CheckApp {

    //onCreate方法在CheckApp中为final避免被误重写。
    
    
    //不需要权限的sdk,可以放在这个方法中初始化。这个方法在应用启动的 时候就会初始化
    @Override
    protected void initSafeSDK() {

        Toast.makeText(this,"不需要权限的sdk初始化成功",Toast.LENGTH_SHORT).show();
    }

    //需要权限的sdk放在这里
    @Override
    protected void initSDK() {
        Toast.makeText(this,"需要敏感权限的sdk初始化功",Toast.LENGTH_SHORT).show();
    }
}

实现自己的CheckActivity

public class MyCheckActivity extends CheckActivity {


    @Override
    protected void openPrivacyPolicy() {
    	//权限检查自带了一个WebActivity。通过openUrl方法可以查看
        openUrl("http://www.baidu.com","隐私政策");
    }

    @Override
    protected void openUserAgreement() {
        openUrl("http://www.zhihu.com","用户协议");
    }
}

注册Activity

在清单文件中,通过meta-data的方式注册CheckActivity。value为CheckActivity的全类名。

   </application>
   		 <meta-data
            android:name="com.trs.app.privacy.check"
            android:value="com.trs.app.demo.MyCheckActivity" />
    </application>

效果

这个提示框是框架自带的。

About

一个帮助完成隐私权限的库


Languages

Language:Java 100.0%