android6把动态权限屏蔽,GitHub - Chen-Baiyi/JAop: Android Aop 拦截,支持 androidx。你可以通过添加注解的方式实现以下功能: 1、点击事件防抖; 2...

JAop

介绍

已适配 AndroidX。

你可以通过添加注解的方式实现以下功能:

点击事件防抖

拦截

动态权限请求

性能监控

依赖

在项目下的 build.gradle 中添加如下依赖

buildscript {

repositories {

jcenter()

}

dependencies {

// aspectj 插件

classpath 'com.cby.aop:aspectj-plugin:1.0.0'

}

}

allprojects {

repositories {

jcenter()

maven { url 'https://jitpack.io' }

}

}

在 module 下的 build.gradle 中

// aspectj 插件

apply plugin: 'aspectj-plugin'

dependencies {

// androidx 版

implementation 'com.github.Chen-Baiyi:JAop:1.1.0'

// support 版

// implementation 'com.github.Chen-Baiyi:JAop:1.0.6'

}

使用

在Application的onCreate里初始化

/**

* 初始化 Aop

*/

private void initAop() {

// 初始化 aop

Aop.init(this);

// 开启 debug 模式

Aop.setDebug(true);

// 配置拦截操作,拦截成功时 return true,否则 return false。

Aop.setInterceptor((type, joinPoint) -> {

Object context = joinPoint.getThis();

Activity activity = null;

if (context instanceof FragmentActivity) {

activity = (Activity) context;

}

if (context instanceof Fragment) {

activity = ((Fragment) context).getActivity();

}

switch (type) {

case 0:

// 未登录拦截,前往登录

if (!isLogin) {

Intent intent = new Intent(activity, LoginActivity.class);

activity.startActivity(intent);

return true;

}

case 1:

// 拦截

Toast.makeText(instance, "拦截消息", Toast.LENGTH_SHORT).show();

return true;

}

return false;

});

// 配置权限拒绝的操作

Aop.setOnPermissionDeniedListener(permissionsDenied -> {

Toast.makeText(instance, "拒绝权限 -> " + Utils.listToString(permissionsDenied), Toast.LENGTH_SHORT).show();

});

}

单击事件防抖

在点击事件方法上添加注解 @JSingleClick

// 默认1000ms

@JSingleClick(2000)

public void onClick(View v) {

}

权限申请

在对应的方法上添加注解 @JPermission(String[])

@JPermission({Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CALL_PHONE})

private void method() {

}

拦截

在对应的方法上添加注解 @JIntercept(int[])

@JIntercept(0)

private void method() {

}

性能监控

在对应的方法上添加注解 @JTrace

@JTrace

private void method() {

}

混淆

-keep @com.cby.aspectj.annotation.* class * {*;}

-keep class * {

@com.cby.aspectj.annotation.* ;

}

-keepclassmembers class * {

@com.cby.aspectj.annotation.* ;

}

68747470733a2f2f6a69747061636b2e696f2f762f4368656e2d42616979692f4a416f702e737667

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值