详细代码
public class RxPremissionActivity extends RxAppCompatActivity {
@BindView(R.id.btn_addPremissionActivity)
public Button addPremission;
@BindView(R.id.btn_addSinglePremission)
public Button singlePremission;
RxPermissions permissions;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_rx_premission);
ButterKnife.bind(this);
permissions = new RxPermissions(this);
}
@OnClick(R.id.btn_addPremissionActivity)
public void addPremission(){
permissions
.request(Manifest.permission.INTERNET,Manifest.permission.CAMERA,Manifest.permission.WRITE_EXTERNAL_STORAGE)
.compose(this.<Boolean>bindUntilEvent(ActivityEvent.DESTROY))
.subscribe(new Observer<Boolean>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(Boolean aBoolean) {
Log.d("amy", "onNext: "+aBoolean);
}
@Override
public void onError(Throwable e) {
Log.d("amy", "onError"+e.getMessage());
}
@Override
public void onComplete() {
Log.d("amy", "onComplete");
}
});
}
@OnClick(R.id.btn_addSinglePremission)
public void singlePremission(){
permissions.requestEach(Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.CAMERA)
.subscribe(new Observer<Permission>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(Permission permission) {
if(permission.name.equals(Manifest.permission.WRITE_EXTERNAL_STORAGE)){
Log.d("amy", "WRITE_EXTERNAL_STORAGE是否申请成功: "+permission.granted);
}
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
}
}
权限
implementation 'com.tbruyelle.rxpermissions2:rxpermissions:+'
implementation 'com.trello.rxlifecycle2:rxlifecycle:2.2.1'
implementation 'com.trello.rxlifecycle2:rxlifecycle-android:2.2.1'
implementation 'com.trello.rxlifecycle2:rxlifecycle-components:2.2.1'