欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

RxPermission申请权限无效

程序员文章站 2022-06-22 17:26:36
RxPermission申请权限无效今天在用Kotlin改写之前的权限申请的时候,出现权限申请无效的问题,开始着手解决问题。1. 判断是否是表达式写错java:String permissions = "android.permission.SIGNAL_PERSISTENT_PROCESSES";RxPermissions rxPermissions = new RxPermissions(MainActivity.this);rxPermissions.requestEach(permis...

RxPermission申请权限无效

今天在用Kotlin改写之前的权限申请的时候,出现权限申请无效的问题,开始着手解决问题。

1. 判断是否是表达式写错

java:

String permissions = "android.permission.SIGNAL_PERSISTENT_PROCESSES";

RxPermissions rxPermissions = new RxPermissions(MainActivity.this);
rxPermissions.requestEach(permissions)
        .subscribe(new Consumer<Permission>() {
            @Override
            public void accept(Permission permission) throws Exception {
                if (permission.granted) {
                    // 用户已经同意该权限
                    //result.agree(permission);
                } else if (permission.shouldShowRequestPermissionRationale) {
                    // 用户拒绝了该权限,没有选中『不再询问』(Never ask again),那么下次再次启动时,还会提示请求权限的对话框
                    //result.refuse(permission);
                } else {
                    // 用户拒绝了该权限,并且选中『不再询问』,提醒用户手动打开权限
                    //result.noMoreQuestions(permission);
                }
            }
        });

kotlin:

val rx = RxPermissions(RxPermissionActivity@this)
            rx.requestEach(permissions)
                .subscribe{
                        if (it.granted){

                        }else if (it.shouldShowRequestPermissionRationale){

                        }else{

                        }
            }
//两种写法都可以
val rxPermissions = RxPermissions(RxPermissionActivity@this)
            rxPermissions.requestEach(permissions)
                .subscribe { permission ->
                    if (permission.granted) {
                        // 用户已经同意该权限
                        //result.agree(permission);
                    } else if (permission.shouldShowRequestPermissionRationale) {
                        // 用户拒绝了该权限,没有选中『不再询问』(Never ask again),那么下次再次启动时,还会提示请求权限的对话框
                        //result.refuse(permission);
                    } else {
                        // 用户拒绝了该权限,并且选中『不再询问』,提醒用户手动打开权限
                        //result.noMoreQuestions(permission);
                    }
                }

2.判断是否在注册表里面申请

就算是动态权限申请,也需要先在注册表里面申请,这次就是因为这个问题,你申请什么权限,就要在注册表里面先添加。

 <uses-permission android:name="android.permission.CAMERA"/>

本文地址:https://blog.csdn.net/qq_43203586/article/details/107966349