Anaroid6.0以上权限请求拒绝允许监听

boolean isHasAudioPermission = CheckAudioPermission.isHasPermission(MainActivity.this);
            if (PackageManager.PERMISSION_GRANTED != ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) || isHasAudioPermission == false) {
                ActivityCompat.requestPermissions(this, PERMISSION_AUDIO, REQUEST_PERMISSION_CAMERA);
            }

    /**
     * 一个或多个权限请求结果回调
     *
     * @param requestCode
     * @param permissions
     * @param grantResults
     */
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        boolean hasAllGranted = true;
        switch (requestCode) {
            case PERMISSION_REQUEST_CODE:
                for (int i = 0; i < grantResults.length; ++i) {
                    if (grantResults[i] == PackageManager.PERMISSION_DENIED) {
                        hasAllGranted = false;
                        //在用户已经拒绝授权的情况下,如果shouldShowRequestPermissionRationale返回false则
                        // 可以推断出用户选择了“不在提示”选项,在这种情况下需要引导用户至设置页手动授权
                        if (!ActivityCompat.shouldShowRequestPermissionRationale(this, permissions[i])) {
                            CustomDialog dialog = new CustomDialog(this, R.style.MyCustomDialog, getString(R.string.cancel), getString(R.string.hint), getString(R.string.permission_camera), getString(R.string.Apply), R.drawable.ic_launcher, new CustomDialogListener() {
                                @Override
                                public void OnClick(View view) {
                                    // TODO Auto-generated method stub
                                    switch (view.getId()) {
                                        case R.id.positiveButton:
                                            finish();
                                            break;
                                        case R.id.negativeButton:
                                            //请求权限
                                            //解释原因,并且引导用户至设置页手动授权
                                            //引导用户至设置页手动授权
                                            Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
                                            Uri uri = Uri.fromParts("package", getApplicationContext().getPackageName(), null);
                                            intent.setData(uri);
                                            startActivityForResult(intent, REQUEST_PRE_SET);
                                            break;
                                    }
                                }
                            });
                            dialog.setCancelable(false);
                            dialog.show();
                        } else {
                            //权限请求失败,但未选中“不再提示”选项

                        }
                        break;
                    }
                }
                if (hasAllGranted) {
                    //权限请求成功
                }
                break;
            case REQUEST_PERMISSION_CAMERA:
                for (int i = 0; i < grantResults.length; ++i) {
                    if (grantResults[i] == PackageManager.PERMISSION_DENIED) {
                        hasAllGranted = false;
                        //在用户已经拒绝授权的情况下,如果shouldShowRequestPermissionRationale返回false则
                        // 可以推断出用户选择了“不在提示”选项,在这种情况下需要引导用户至设置页手动授权
                        if (!ActivityCompat.shouldShowRequestPermissionRationale(this, permissions[i])) {
                            CustomDialog dialog = new CustomDialog(this, R.style.MyCustomDialog, getString(R.string.cancel), getString(R.string.hint), getString(R.string.permission_camera), getString(R.string.Apply), R.drawable.ic_launcher, new CustomDialogListener() {
                                @Override
                                public void OnClick(View view) {
                                    // TODO Auto-generated method stub
                                    switch (view.getId()) {
                                        case R.id.positiveButton:

                                            break;
                                        case R.id.negativeButton:
                                            //请求权限
                                            //解释原因,并且引导用户至设置页手动授权
                                            //引导用户至设置页手动授权
                                            Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
                                            Uri uri = Uri.fromParts("package", getApplicationContext().getPackageName(), null);
                                            intent.setData(uri);
                                            startActivityForResult(intent, REQUEST_PRE_CAMERA);
                                            break;
                                    }
                                }
                            });
                            dialog.setCancelable(false);
                            dialog.show();

                        } else {
                            //权限请求失败,但未选中“不再提示”选项
                        }
                        break;

                    }
                }
                if (hasAllGranted) {
                    //权限请求成功
                }
                break;
            case GET_RECODE_AUDIO:
                for (int i = 0; i < grantResults.length; ++i) {
                    if (grantResults[i] == PackageManager.PERMISSION_DENIED) {
                        hasAllGranted = false;
                        //在用户已经拒绝授权的情况下,如果shouldShowRequestPermissionRationale返回false则
                        // 可以推断出用户选择了“不在提示”选项,在这种情况下需要引导用户至设置页手动授权
                        if (!ActivityCompat.shouldShowRequestPermissionRationale(this, permissions[i])) {
                            CustomDialog dialog = new CustomDialog(this, R.style.MyCustomDialog, getString(R.string.cancel), getString(R.string.hint), getString(R.string.permission_camera), getString(R.string.Apply), R.drawable.ic_launcher, new CustomDialogListener() {
                                @Override
                                public void OnClick(View view) {
                                    // TODO Auto-generated method stub
                                    switch (view.getId()) {
                                        case R.id.positiveButton:

                                            break;
                                        case R.id.negativeButton:
                                            //请求权限
                                            //解释原因,并且引导用户至设置页手动授权
                                            //引导用户至设置页手动授权
                                            Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
                                            Uri uri = Uri.fromParts("package", getApplicationContext().getPackageName(), null);
                                            intent.setData(uri);
                                            startActivityForResult(intent, REQUEST_PRE_AUDIO);
                                            break;
                                    }
                                }
                            });
                            dialog.setCancelable(false);
                            dialog.show();

                        } else {
                            //权限请求失败,但未选中“不再提示”选项
                        }
                        break;

                    }
                }
                if (hasAllGranted) {
                           //权限请求成功
                }
                break;
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值