Android6.0以上动态权限-AndPermission

随便写一下记个笔记

依赖:

implementation 'com.yanzhenjie:permission:1.0.1'
//6.0以上动态申请权限
    private void initAndPermission(){
        AndPermission.with(this)
                .requestCode(101)
                .permission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
                .rationale(mRationaleListener)
                .send();
        mRationaleListener= new RationaleListener() {
            @Override
            public void showRequestPermissionRationale(int requestCode, final Rationale rationale) {
                new AlertDialog.Builder(MainActivity.this)
                        .setTitle("友好提醒")
                        .setMessage("该应用需要SD卡权限")
                        .setPositiveButton("同意", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                dialog.cancel();
                                rationale.resume();// 用户同意继续申请。
                            }
                        })
                        .setNegativeButton("拒绝", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                dialog.cancel();
                                rationale.cancel(); // 用户拒绝申请。
                            }
                        }).show();
            }
        };
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        // 只需要调用这一句,剩下的 AndPermission 自动完成。
        AndPermission.onRequestPermissionsResult(this, requestCode, permissions, grantResults);
    }

    // 成功回调的方法,用注解即可,里面的数字是请求时的 requestCode。
    @PermissionYes(101)
    private void getSDYes() {
        // 申请权限成功,可以去做点什么了。
        Toast.makeText(this, "获取SD卡权限成功", Toast.LENGTH_SHORT).show();
    }

    // 失败回调的方法,用注解即可,里面的数字是请求时的 requestCode。
    @PermissionNo(101)
    private void getSDNo() {
        // 申请权限失败,可以提醒一下用户。
        //finish();
        Toast.makeText(this, "获取SD卡权限失败", Toast.LENGTH_SHORT).show();
    }

 

你可能感兴趣的:(Android6.0以上动态权限-AndPermission)