你好!
清单文件配置权限
<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