当前位置: 首页 > article >正文

动态权限申请三方库

记录一下,方便新项目使用

首先加入依赖,加rxjava是因为会使用到 subscribe 方法

implementation 'com.github.tbruyelle:rxpermissions:0.12'
implementation "io.reactivex.rxjava3:rxjava:3.1.6"
maven { url 'https://jitpack.io' }

使用

rxPermissions
                .request(Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE)//权限列表
                .subscribe(granted -> {
                    if (granted) {//获取了全部权限
                        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
                            if (!Environment.isExternalStorageManager()) {//去开启权限
                                Intent intent = new Intent("android.settings.MANAGE_APP_ALL_FILES_ACCESS_PERMISSION");
                                intent.setData(Uri.parse("package:" + getPackageName()));
                                startActivity(intent);
                            } else {
                                Log.e(TAG,"已获得权限");
                            }
                        } else {
                            Log.i(TAG,"已获得权限");
                        }
                    } else {//至少有一个权限被拒绝
                        Toast.makeText(this, "至少有一个权限被拒绝", Toast.LENGTH_SHORT).show();
                        finish();
                    }
                });


http://www.kler.cn/a/6694.html

相关文章:

  • ethers不同版本返回余额的整数值类型,以及对大整数值的处理差异性的比较
  • pathlinux
  • 热门商业模式——分享购,整合流量与资源,实现生态布局
  • 【Redis】缓存一致性
  • 【Java笔试强训】day16编程题
  • 函数调用时栈空间的变化
  • 三次迭代终放“大招”,Themis Pro版即将问世
  • 第09讲:Spring Data Redis(RedisTemplate)
  • pdf怎么转换成jpg图片?快来收藏这两种方法
  • 【图论刷题-6】力扣 797. 所有可能的路径
  • 【K3s】第31篇 详解 TDengine 集群扩容、缩容、清理
  • 工厂方法示例
  • CDH6.3.2大数据集群生产环境安装(五)之httpd和clouderManagerServer、agent组件安装
  • Java基础之Set
  • 2023蓝牙耳机哪个品牌的质量好?耐用的蓝牙耳机推荐
  • 《只有全力奔跑过才知道的事 》大迫杰
  • 【Linux】线程概念
  • 变量的作用域练习题-课后程序(JavaScript前端开发案例教程-黑马程序员编著-第4章-课后作业)
  • Java判断请求是来自手机端还是PC端
  • select @@basedir;