android 权限动态申请 RxPermissions使用

git地址点击打开链接

引用

compile 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.5@aar'

使用方法如下,直接使用不需要判断是否在6.0之上,这是kotlin的语法跟java没区别

val rxPermissions = RxPermissions(this)
        rxPermissions.requestEach(Manifest.permission.CAMERA,
                Manifest.permission.WRITE_EXTERNAL_STORAGE)
                .compose(this.bindToLifecycle<Permission>())//绑定生命周期回收订阅需引用rxlifecycle没用引用可以不加此句
                .subscribe { // will emit 2 Permission objects
                    permission ->
                    when {
                        permission.granted -> {
                            Log("权限", "权限被允许")
                        }
                        permission.shouldShowRequestPermissionRationale -> {
                            Log("权限", "权限被拒绝没有选择不再询问")
                        }
                        else -> {
                            Log("权限", "权限被允许选择了不再询问")
                        }
                    }
                }

RxPermissions已经判断
 boolean isMarshmallow() {
        return Build.VERSION.SDK_INT >= Build.VERSION_CODES.M;
    }

    public boolean isGranted(String permission) {
        // 如果是Android 6.0 (Api 23)之前,则权限被允许使用。
        return !isMarshmallow() || mRxPermissionsFragment.isGranted(permission);
    }

猜你喜欢

转载自blog.csdn.net/shengsheng1_1/article/details/80060531