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();
    }

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值