最近才开始用AndPermission库,感觉非常不错,在使用的过程中,顺便就将它的用法写下来吧。
首先是AndPermission库的引入,通过添加依赖即可:
dependencies { ... compile 'com.yanzhenjie:permission:1.0.4' }也可以在Project Strcuture里搜索这个依赖库,直接添加。
然后看他如何判断是否有某权限,这里就用读短信为例,看代码:
if(AndPermission.hasPermission(this, Manifest.permission.READ_SMS)){ //执行业务 }else { //申请权限 }这行代码的语义感非常强,就是判断是否有读取短信的权限,第一个参数是上下文对象 ,在Activity中直接传入This,这个方法返回一个Boolean型的值,当返回值 为Ture时可以直接执行业务逻辑,当为False时再执行请求用户极权的逻辑。
接下来看在未获得权限时,如何云请求用户授权
//申请权限 AndPermission.with(this) .requestCode(100) .permission(Manifest.permission.READ_SMS) .send();
这里使用链式编程,requestCode方法里面接受一个int值,作为请求码,用于区分不同的权限请求,permission方法里面的参数可以写一个或多个权限,中间以逗号隔开而不使用数组大括号,然后调用send方法云请求权限。
然后在Activity或Fragment重写onRequestPermissionsResult方法为当前Activity或Fragment设置监听回调,这里和带近回值 的Intent需要重写onActviityResult来设置回调监听类,代码如下: