//工具集
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权限使用流程
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- PermissionsDispatcher2.3.2使用 Android6.0权限官网https://develo...
- 1.0 事实上这章特别难写,知识点比较清楚,比较少。但是代码量特别多,主要还是因为重复性的代码比较多,而且在细节方...
- 一、黑名单账户列表 actor-blacklist = blacklistmee actor-blacklist ...
- 1.0 当然,其实本篇和权限处理没有什么关系。但是: 我们需要用到上一篇博文中ProviderTest项目来当小白...
- ExplainPermissions 动态权限申请并展示权限使用说明 随着工信部对APP的一系列整治,现在用户对于...