首先在你的项目里面引用
aspectjlib模块
配置如下:
1.在项目最外层的build.gradle 引入
dependencies {
classpath 'org.aspectj:aspectjtools:1.8.9'
classpath 'org.aspectj:aspectjweaver:1.8.9'
}
2.在app里面的build.gradle 添加一下代码
android.applicationVariants.all { variant ->
JavaCompile javaCompile = variant.javaCompile
javaCompile.doLast {
String[] args = ["-showWeaveInfo",
"-1.5",
"-inpath", javaCompile.destinationDir.toString(),
"-aspectpath", javaCompile.classpath.asPath,
"-d", javaCompile.destinationDir.toString(),
"-classpath", javaCompile.classpath.asPath,
"-bootclasspath", android.bootClasspath.join(
File.pathSeparator)]
org.aspectj.bridge.MessageHandler handler = new org.aspectj.bridge.MessageHandler(true)
new org.aspectj.tools.ajc.Main().run(args, handler)
}
}
以上配置完就可以用了
处理权限的用法
1.不需要处理弹框,只输入提示文本
@Permission(value = {Manifest.permission.CALL_PHONE}, requestCode = 10001) public void call(View view) { //打电话 } @PermissionDenied(value = "你的权限被拒绝了") private void PermissionDenied(int requestCode) { } @PermissionCancel(value = "您的权限被取消了,请先去设置") private void PermissionCancel(int requestCode) { }2.不输入文本默认提示
@Permission(value = {Manifest.permission.CALL_PHONE}, requestCode = 10001) public void call(View view) { //打电话 } @PermissionDenied private void PermissionDenied(int requestCode) { } @PermissionCancel private void PermissionCancel(int requestCode) { }
3.自定义弹框
@Permission(value = {Manifest.permission.CALL_PHONE}, requestCode = 10001) public void call(View view) { //打电话 } @PermissionDenied(isDefaultDialog = false) private void PermissionDenied(int requestCode) { // TODO: 2018/5/31 你的处理弹框 } @PermissionCancel(isDefaultDialog = false) private void PermissionCancel(int requestCode) { // TODO: 2018/5/31 你的处理弹框 }
按钮点击过快的处理那个,目前模块里面已经处理了,不需要处理了