android6.0权限问题
android6.0之后,需要每次使用权限时候都需要询问用户是否需要允许权限,这有别于之前的版本。
这里我们使用RxJava+RxPermission的方法进行适配。
1.首先引用开源项目RxPermissions
compile 'com.tbruyelle.rxpermissions:rxpermissions:0.9.4@aar'
2.创建对象
RxPermissions rxPermissions = new RxPermissions(this);
3.直接申请单个权限
//直接申请单个权限 rxPermissions.request(Manifest.permission.CAMERA) .subscribe(new Action1<Boolean>() { @Override public void call(Boolean granted) { if(granted) { //已经获取权限,6.0之前默认返回true } else { //没有获取权限 } } });
4.直接申请多个权限
//直接申请多个权限 rxPermissions.request(Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO) .subscribe(new Action1<Boolean>() { @Override public void call(Boolean granted) { } });
5.点击按钮申请权限
//点击按钮申请权限 RxView.clicks(findViewById(R.id.btnCamera)) .compose(rxPermissions.ensureEach(Manifest.permission.CAMERA)) .subscribe(new Action1<Permission>() { @Override public void call(Permission permission) { Log.i(TAG, "Permission result " + permission); if(permission.granted) { //已经获取权限,6.0之前默认返回true } else { //没有获取权限 } } });