git地址点击打开连接html
引用java
compile 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.5@aar'
使用方法以下,直接使用不须要判断是否在6.0之上,这是kotlin的语法跟java没区别git
val rxPermissions = RxPermissions(this)
rxPermissions.requestEach(Manifest.permission.CAMERA,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
.compose(this.bindToLifecycle())//绑定生命周期回收订阅需引用rxlifecycle没用引用能够不加此句
.subscribe { // will emit 2 Permission objects
permission ->
when {
permission.granted -> {
Log("权限", "权限被容许")
}
permission.shouldShowRequestPermissionRationale -> {
Log("权限", "权限被拒绝没有选择再也不询问")
}
else -> {
Log("权限", "权限被容许选择了再也不询问")
}
}
}
RxPermissions已经判断
boolean isMarshmallow() {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.M;
}
public boolean isGranted(String permission) {
// 若是是Android 6.0 (Api 23)以前,则权限被容许使用。
return !isMarshmallow() || mRxPermissionsFragment.isGranted(permission);
}