Android - 运行时权限AndPermission开源库的应用

时间:2022-04-01 15:04:00

介绍看这里

项目升级到android 7.1.1(从5.1直接升级的,这个权限是6.0以后加入的)以后由于google新的权限设计,项目出现了以下问题

错误日志:E/HAL: load: id=gralloc != hmi->id=gralloc


这是由于有些对客户有潜在危险的权限必须要提示客户,而且要客户同意后才能操作,否则页面会出现类似闪退的情况,在网上找了一些教程后发现AndPermission这个现成的开源库,做了一些测试感觉使用还是很方便的,也介绍给一些拿来主义同学使用,使用的具体方法可以参考原作者的博客,下面写一些自已在使用时出现的一些小情况,也欢迎大家讨论一下自己在使用出现的问题!

教程看这里

版权声明:转载必须注明本文转自严振杰的博客: http://blog.csdn.net/yanzhenjie1003

下载地址:运行时权限开源库AndPermission:https://github.com/yanzhenjie/AndPermission。 


版本看这里

在使用时开源库版本已经到1.0.3,需要的朋友可以去github上下载,具体版本已github上为准,我的Android 已经升级为最新的7.1.1 api25

依赖路径 compile 'com.yanzhenjie:permission:1.0.3'

使用看这里

主要注意的情况分为在Activity的应用和Fragment的应用,虽然在Demo中也提及到了,但我在使用时也出现了无法获取回调后也才注意到的。

在Fragment中要加上下面的语句,Activity中则可以省略,但我处理方式是都加上了,本身就是一个父类的重写方法,activity中用不用看自己。

// 在Fragment中这句话不能注释,否则Fragment接收不到获取权限的通知。
super.onRequestPermissionsResult(requestCode,permissions,grantResults);

开始使用中的疑惑

 .requestCode(101)中的101可以随便定义,给个整形的数值就可以,只要保证请求值一样就可以了,开始以为是一种权限一个值。

jar包会自动识别当前版本,可以在成功和失败的回调中直接处理就可以,但是失败只能统一处理,或者在判断一下app当前版本分别处理6.0及以上或以下!