动态权限申请三方库
记录一下,方便新项目使用
首先加入依赖,加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();
}
});