当前位置:   article > 正文

三行注解搞定Android高版本动态申请权限_使用注解实现动态权限申请

使用注解实现动态权限申请

三行注解搞定Android高版本动态申请权限

大家好,有半年没有写博客了,见谅啊。今天跟大家介绍我在项目中使用到得一个动态申请权限得框架,我已经弄成lib了可以直接引用到项目里面使用.

  • 代码中使用
  • 如何引入lib到自己得项目中?
  • 可能遇到得问题

代码中使用

在需要申请权限得函数上添加注解如定位权限:

@Permission(Manifest.permission.ACCESS_FINE_LOCATION)//写上需要申请的权限一个或若干用,隔开即可

private fun positioning() {
        //开始你得定位代码
    }

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

用户同意后会执行 positioning()函数里面,开始执行你写得定位代码。同样有同意,就有拒绝。

@PermissionCanceled //点击取消执行这个函数
private fun cancel() {
        showToast("你拒绝了这个权限")
    }


@PermissionDenied//点击取消和不在提醒 执行这个函数 注意 这个函数执行后 会自动跳转到手机系统设置权限得页面
private fun denied() {
        showToast("没有这个权限手机无法正常使用")
    }


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

到这里就完了? 嗯哼~对,到这里就完了(别忘了再配置清单里面添加对应得权限)就是这么简单。

来一个gif感受一下

代码效果

##如何引入lib到自己得项目中?

要使用这个lib得很简单下载这个lib到自己项目中引入。

需要注意得地方:

在主项目app得build.gradle 里面添加 这几句代码

   apply plugin: 'com.hujiang.android-aspectjx'

  • 1
  • 2

在主项目最外面的build.gradle中添加

   classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.0'
  
  • 1
  • 2

做完上面这几步同步一下就可以正常使用了。是不是很简单?

##可能遇到得问题

其实我最想写的就是这个模块!!!因为一个问题卡了我一个星期,才解决。就是用这个申请权限lib的时候因为使用了
aspectj1.。这个是AOP用的一个框架,想知道具体干什么的可以点击脚注看看这里就不说别的了。因为aspectj这个东西他默认会处理所有的二进制代码文件和库,刚好最近在做模块化,于是和支付模块冲突了…

这里写图片描述

???? 什么情况?找不到这类?
项目代码

支付宝jar

可以通过错误log和lib里面的支付宝jar里面的目录知道是因为找不到这个Paytask报错的那么为什么呢?

重复一下上面的一句话

因为aspectj这个东西他默认会处理所有的二进制代码文件和库

那么如何解决呢?我找过支付宝客服,以为是支付宝jar的问题,结果被告知使用了aspectj要自己解决。。。
好吧,我找github上aspectjx 这个作者,我用的是他封装的。发现了忽略的一个东西(狂汗不止)

要过滤第三方的东西 好了 按照说的 写好后,虎躯一震~~~

这里写图片描述

嗯哼?是的还是之前的错。于是又把文档看了几遍,没问题。。。。。。。
顿时头大无比。突然开窍了试了下!

解决办法在app的build.gradle中写如下代码:

   aspectjx {
//排除所有package路径中包含`android.support`的class文件及库(jar文件)
    exclude 'com/alipay'
}
  • 1
  • 2
  • 3
  • 4

过滤第三方jar包下的文件,注意包名不适用.是用/隔开 (就是这个地方卡了我一个星期)

ok 到这里 已经结束了,有其他问题的小伙伴可以联系我

END

QQ:846925073
邮箱:zouzou1111@qq.com

PS:项目过几天会补上,各位稍等。

有好几个同学反映说过滤的代码不知道写在哪里
路径 app目录下的build.gradle文件中 划重点: android{} 外面
然后clear 清理一下缓存 因为aop会动态生成静态代码记得经常清理一下缓存

这是git上的项目地址



  1. https://baike.baidu.com/item/Aspectj/4830848 ↩︎

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/989183
推荐阅读
相关标签
  

闽ICP备14008679号