美文网首页
android权限使用流程

android权限使用流程

作者: 背锅TV丶伴奏大师 | 来源:发表于2024-05-28 16:39 被阅读0次
//工具集
implementation 'com.blankj:utilcode:1.30.7'
//RxJava系统权限管理
implementation 'com.github.tbruyelle:rxpermissions:0.10.2'
//rxJava响应式编程
implementation 'io.reactivex.rxjava2:rxjava:2.2.8'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
@SuppressLint("CheckResult")
fun FragmentActivity.requestAppPermission(okListener:()-> Unit, qxListener: ()->Unit){
    val permissions=arrayOf(
        Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE,
        Manifest.permission.WRITE_EXTERNAL_STORAGE)
    val rxPermissions=RxPermissions(this)
    if (!PermissionUtils.isGranted(*permissions)){//未通过
        //先弹窗提示权限使用对话框
        CommonIosDialog.Builder(this)
            .setTitle(getString(R.string.use_photography_permission))
            .setContent(getString(R.string.image_read_storage_permission))
            .setMode(CommonIosDialog.Mode.DOUBLE_MODE)
            .setCancel("取消", null)
            .setConfirm("确定", object : OnMultiClickListener() {
                override fun onMultiClick(v: View?) {
                    rxPermissions.request(*permissions).subscribe { aBoolean ->
                        if (aBoolean) {
                            okListener.invoke()
                        } else {
                            qxListener.invoke()     
                            //用户拒接时,弹窗提示用户去权限设置页开启权限
                            val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
                            val uri = Uri.fromParts("package", packageName, null)
                            intent.data = uri
                            startActivityForResult(intent, 0)                           
                        }
                    }
                }
            }).create().show()
    }else{//已通过
        okListener.invoke()
    }
}

//使用时
requestAppPermission(okListener = {
                    //to do
                }, qxListener = {
                        //to do
                    })

相关文章

网友评论

      本文标题:android权限使用流程

      本文链接:https://www.haomeiwen.com/subject/vtfkqjtx.html