使用
1、 app/build.gradle
2、 在Activity / Fragment实现PermissionCallbacks,回调方法:
|
|
3、 在需要使用到权限之前调用methodRequiresTwoPermission方法,如相机和发送短信:
4、 还是要授权回调:
这样就over了。
源码地址
https://github.com/googlesamples/easypermissions
一点思考
就在《Android 6.0 RuntimePermission》文章里,我对Android 6.0 运行权限做了个简单封装,但没有考虑到fragment使用和勾上不再询问应该去setting,还一个问题,封装只是针对单个权限,推荐官方easypermissions库,来看看easypermissions是如何解决我未考虑的问题。
Fragment使用
直接提供了Fragment可以调用的方法:
不再询问去setting
我在《Android 6.0 RuntimePermission》说当勾上“不再询问”,只能选择拒绝,再次进入,shouldShowRequestPermissionRationale方法始终false,当onPermissionsDenied方法回调时,肯定是都是拒绝,再根据shouldShowRequestPermissionRationale方法不就知道是否勾上了“不再询问”,我咋没有想到这点呢:
EasyPermissions的somePermissionPermanentlyDenied方法,就是根据shouldShowRequestPermissionRationale方法不就知道是否勾上了“不再询问”。
跳转setting代码:
封装只针对单个权限
我应该封装多个权限,多权限是个数组,如果只有一个元素,不就是单个权限嘛!