运行时权限

来源:互联网 发布:cssrs是什么软件 编辑:程序博客网 时间:2024/06/05 07:34

运行时权限的依赖

compile 'com.yanzhenjie:permission:1.0.5'



----------------------------------------------------------------------------------------------------------------------------------------------------------

//判断是否有权限

Manifest.permission.CAMERA==你需要的权限

if (AndPermission.hasPermission(MainActivity.this, Manifest.permission.CAMERA)) {
                    //有权限 做操作
                    
                } else {
                    //没有权限 申请权限
                    AndPermission.with(MainActivity.this).requestCode(100).permission(Manifest.permission.CAMERA).send();
                }


    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
// 只需要调用这一句,其它的交给AndPermission吧,最后一个参数是PermissionListener。
        AndPermission.onRequestPermissionsResult(requestCode, permissions, grantResults, listener);
    }



    private PermissionListener listener = new PermissionListener() {
        @Override
        public void onSucceed(int requestCode, List<String> grantedPermissions) {
            // 权限申请成功回调。
            if(requestCode == 100) {
                // TODO 相应代码。
            } else if(requestCode == 101) {
                // TODO 相应代码。
            }
        }


        @Override
        public void onFailed(int requestCode, List<String> deniedPermissions) {
            // 权限申请失败回调。


            // 用户否勾选了不再提示并且拒绝了权限,那么提示用户到设置中授权。
            if (AndPermission.hasAlwaysDeniedPermission(MainActivity.this, deniedPermissions)) {
                // 第一种:用默认的提示语。
                AndPermission.defaultSettingDialog(MainActivity.this, requestCode).show();


                // 第二种:用自定义的提示语。
                // AndPermission.defaultSettingDialog(this, REQUEST_CODE_SETTING)
                // .setTitle("权限申请失败")
                // .setMessage("我们需要的一些权限被您拒绝或者系统发生错误申请失败,请您到设置页面手动授权,否则功能无法正常使用!")
                // .setPositiveButton("好,去设置")
                // .show();


                // 第三种:自定义dialog样式。
                // SettingService settingService =
                //    AndPermission.defineSettingDialog(this, REQUEST_CODE_SETTING);
                // 你的dialog点击了确定调用:
                // settingService.execute();
                // 你的dialog点击了取消调用:
                // settingService.cancel();
            }
        }
    };

1 0
原创粉丝点击