用RxJava进行动态权限申请
1.依赖引入
implementation 'com.github.tbruyelle:rxpermissions:0.10.2'
2.注册清单设置(以相机、读取文件两个权限为例)
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!--读和写属于同一个权限组,只需要申请一个就可以了-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
3.Rx申请权限方法
public class RxPermissionUtil {
/**
* 申请权限
*/
@SuppressLint("CheckResult")
public static void requestPermission(Activity activity) {
new RxPermissions((FragmentActivity) activity).request(
Manifest.permission.CAMERA,
Manifest.permission.READ_EXTERNAL_STORAGE
).subscribe(new Consumer<Boolean>() {
@Override
public void accept(Boolean aBoolean) throws Exception {
if (aBoolean) {
Log.e("MainActivity", "权限都申请过了");
} else {
Toast.makeText(activity, "部分权限被禁用,将无法使用相应功能!",
Toast.LENGTH_SHORT).show();
}
}
});
}
}
4.调用
//检测申请权限
RxPermissionUtil.requestPermission(MainActivity.this);