Android(安卓)获取动态权限时候用户选择不再提示后无法获取权限的问题
16lz
2021-01-24
1.添加依赖
implementation 'com.qw:soulpermission:1.1.8'
2.
SoulPermission.getInstance().checkAndRequestPermissions( Permissions.build(Manifest.permission.RECORD_AUDIO ), new CheckRequestPermissionsListener() { @Override public void onAllPermissionOk(com.qw.soul.permission.bean.Permission[] allPermissions) { //获取到权限写你要做的代码 } @Override public void onPermissionDenied(com.qw.soul.permission.bean.Permission[] refusedPermissions) { //用户拒绝权限 并且不再提示 时候需要这样写 if (Build.VERSION.SDK_INT >= 23) { if (!ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, Manifest.permission.RECORD_AUDIO)) { new AlertDialog.Builder(MainActivity.this).setTitle("权限设置")//设置对话框标题 .setMessage( "获取麦克风权限失败," + "将导致部分功能无法正常使用,需要到设置页面手动授权")//设置显示的内容 .setPositiveButton("去授权", new DialogInterface.OnClickListener() {//添加确定按钮 @Override public void onClick(DialogInterface dialog, int which) {//确定按钮的响应事件 //TODO Auto-generated method stub Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); Uri uri = Uri.fromParts("package", getApplicationContext().getPackageName(), null); intent.setData(uri); startActivity(intent); dialog.dismiss(); } }).setNegativeButton("取消", new DialogInterface.OnClickListener() {//添加返回按钮 @Override public void onClick(DialogInterface dialog, int which) {//响应事件 // TODO Auto-generated method stub dialog.dismiss(); } }).setOnCancelListener(new DialogInterface.OnCancelListener() { @Override public void onCancel(DialogInterface dialog) {// mRequestPermissionCallBack.denied(); } }).show();//在按键响应事件中显示此对话框 } } } });
更多相关文章
- Android(安卓)MID BootSound
- PackageManagerService简介
- Android(安卓)之怎么删除eclipse自动生成的//TODO Auto-generate
- Android热修复实战
- Android(安卓)对话框用法
- Android时间选择器对话框的使用
- Android(安卓)alertdialog的按钮点击后不消失
- Android中WebView详解
- Android(安卓)studio 点击按钮跳转到新的Activity