详细的文章: https://blog.csdn.net/s13383754499/article/details/79034758
emmmmmmm,今天的项目里面有动态获取权限,so,就记录今天我学到的关于动态获取权限的知识点。
android6.0有一个动态获取权限框架PermissionDispatcher。
插件
首先先偷个懒吧,AS里面有快捷的方式可以添加代码,那就是装插件。
装插件流程:settings —> plugins —>搜索:输入PermissionDispatcher —>点击安装 —>重启AS
添加:需添加获取权限的类里面右键 —> Generate —> Generate Runtime Permissions…/Add PermissionsDispatcher dependencies —> 选择你想要添加的权限(如下图)—> 点击Generate —>自动生成
具体注解解析
PermissionDispatcher主要有以下几个注解:
(注意:被注解的方法不能是私有方法!!!)原因:使用PermissionsDispatcher除实现注解还需重写Activity的onRequestPermissionsResult()方法,在里面让一个PermissionsDispatcher执行回调。
1. @RuntimePermissions 标记需要运行时判断的类
2. @NeedsPermission 标记需要检查权限的方法
3. @OnShowRationale 授权提示回调
4. @OnPermissionDenied 授权被拒绝回调
5. @OnNeverAskAgain 授权不再拒绝不再显示回调
- @RuntimePermissions :必须使用的注解,用于标注想申请权限的Activity/Fragment的类名前。
@RuntimePermissions
public class PermissionsDispatcherActivity extends AppCompatActivity{
}
- @NeedsPermission(想要获取的权限…可以多个):必须使用的注解,当用户给予权限时会执行该方法。
@NeedsPermission({
Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.RECORD_AUDIO