美文网首页
2022-03-08 动态权限申请

2022-03-08 动态权限申请

作者: 颈椎以上瘫痪 | 来源:发表于2022-03-14 11:51 被阅读0次

    平时关于动态权限申请的写法都比较麻烦,这段时间在网上找到一个关于权限申请的库,使用起来非常方便,所以在这里记录一下。

    1.在build.gradle文件中添加其依赖

    dependencies {
        //动态权限申请
        implementation 'com.github.dfqin:grantor:2.1.0'
    }
    

    2.在AndroidManifest.xml文件中声明你需要使用到的权限

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    

    3.在需要权限申请的地方进行校验,笔者就在主界面创建时进行

    //所需动态申请权限列表
    private static final int REQUEST_CODE = 1001;
    private static final String[] REQUIRED_PERMISSION_LIST = new String[]{
            Manifest.permission.WRITE_EXTERNAL_STORAGE,
            Manifest.permission.READ_EXTERNAL_STORAGE,
            Manifest.permission.RECORD_AUDIO,
            Manifest.permission.CAMERA,
            Manifest.permission.READ_PHONE_STATE
    };
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_menu);
        ButterKnife.bind(this);
    
        permissionCheck();
    }
    
    private void permissionCheck() {
        //所需动态申请权限列表
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
            System.out.println(android.os.Build.VERSION.SDK_INT + ":申请动态权限");
            PermissionsUtil.requestPermission(this, mPermissionListener, REQUIRED_PERMISSION_LIST);
        } else {
            System.out.println(android.os.Build.VERSION.SDK_INT + ":不需要申请动态权限");
        }
    }
    
    PermissionListener mPermissionListener = new PermissionListener() {
        @Override
        public void permissionGranted(@NonNull String[] permission) {
            System.out.println("同意的权限:" + new Gson().toJson(permission));
        }
    
        @Override
        public void permissionDenied(@NonNull String[] permission) {
            System.out.println("拒绝的权限:" + new Gson().toJson(permission));
        }
    };
    

    相关文章

      网友评论

          本文标题:2022-03-08 动态权限申请

          本文链接:https://www.haomeiwen.com/subject/ckyarrtx.html