利用框架:rxpermissions2内部已经做了qpi的判断,不需要再进行判断
implementation 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.3@aar'
//下边两个需要一块添加
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
implementation 'io.reactivex.rxjava2:rxjava:2.1.16'
使用:在需要的地方用下面代码申请就可以
new RxPermissions(this).requestEach(Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
.subscribe(new io.reactivex.functions.Consumer<Permission>() {
@Override
public void accept(Permission permission) throws Exception {
if (permission.granted) {
// 用户已经同意该权限
Log.e("xnm", "1");
} else if (permission.shouldShowRequestPermissionRationale) {
// 用户拒绝了该权限,那么下次再次启动时,还会提示请求权限的对话框
Log.e("xnm", "2");
} else {
// 用户拒绝了该权限,并且选中『不再询问』
Log.e("xnm", "3");
}
}
});