Android动态权限请求(附demo -- kotlin版)

你好!

清单文件配置权限

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

导入依赖

  //动态权限请求  
  implementation 'com.tbruyelle.rxpermissions:rxpermissions:0.7.0@aar'
  implementation 'io.reactivex:rxjava:1.0.14'

获取权限

//同时请求一个或者多个权限
private fun checkPerm() {
    RxPermissions.getInstance(_this).request(
      Manifest.permission.WRITE_EXTERNAL_STORAGE,
      Manifest.permission.READ_EXTERNAL_STORAGE)
      .subscribe(object : Action1<Boolean> {
        override fun call(t: Boolean?) {
          if (t!!) {//true表示获取权限成功(注意这里在android6.0以下默认为true)
            Log.e("permissions", Manifest.permission.READ_CALENDAR + ":获取成功");
          } else {
            Log.e("permissions", Manifest.permission.READ_CALENDAR + ":获取失败" );
            //没给权限就重复请求
            checkPerm()
          }
        }

      })
  }



 //分别请求多个权限
  private fun checkSeparatePerm(){
    RxPermissions.getInstance(this).requestEach( Manifest.permission.WRITE_EXTERNAL_STORAGE,
      Manifest.permission.CAMERA).subscribe(object : Action1<Permission> {
      override fun call(t: Permission?) {
        if(t!!.name .equals(Manifest.permission.WRITE_EXTERNAL_STORAGE)){
          //当WRITE_EXTERNAL_STORAGE权限获取成功时,t.granted=true
          Log.i("permissions", Manifest.permission.WRITE_EXTERNAL_STORAGE + ":" + t.granted);
        }
        if(t!!.name .equals(Manifest.permission.WRITE_EXTERNAL_STORAGE)){
          //当CAMERA权限获取成功时,t.granted=true
          Log.i("permissions", Manifest.permission.CAMERA + ":" + t.granted);
        }
      }

    })
  }

我是入梦,谢谢你的观看我的博客,觉着好用的话,麻烦帮忙点个赞呗,谢谢啦~ 如果有什么错误,请随时联系我噢~QQ:897589417

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值