以請(qǐng)求拍照返弹、讀取位置權(quán)限為例
module的build.gradle:
compile 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.4@aar'
compile 'io.reactivex.rxjava2:rxjava:2.0.5'
AndroidManifest.xml:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.CAMERA"/>
源碼:
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
RxPermissions rxPermissions = new RxPermissions((Activity) mContext);
rxPermissions.request(Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.CAMERA)
.subscribe(new Observer<Boolean>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(Boolean aBoolean) {
if (aBoolean) {
Toast.makeText(mContext, "已獲取權(quán)限孵延,可以干想干的咯", Toast.LENGTH_LONG)
.show();
} else {
//只有用戶拒絕開啟權(quán)限,且選了不再提示時(shí),才會(huì)走這里中剩,否則會(huì)一直請(qǐng)求開啟
Toast.makeText(mContext, "主人,我被禁止啦坠陈,去設(shè)置權(quán)限設(shè)置那把我打開喲", Toast.LENGTH_LONG)
.show();
}
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
}
});
注意:
必須加 compile 'io.reactivex.rxjava2:rxjava:2.0.5'