Android6.0以后需要动态申请权限,平时我们写的时候,可能都是自定义一个权限数组,然后判断是否已有权限。
这次使用一个非常好用的第三方权限申请的工具:RxPermissions
首先我们引入依赖包:
implementation 'com.tbruyelle.rxpermissions:rxpermissions:0.9.4@aar' implementation 'io.reactivex:rxjava:1.0.14' implementation 'io.reactivex:rxandroid:1.0.1'
第二步:在我们需要申请权限的页面声明对象:
RxPermissions mRxPermissions;
onCreate方法中实例化
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mRxPermissions = new RxPermissions(this);
}
申请权限的方法
private void attemptPermissions() {
mRxPermissions.request(Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION , Manifest.permission.CAMERA,Manifest.permission.BLUETOOTH)
.subscribe(new Action1<Boolean>() {
@Override
public void call(Boolean aBoolean) {
if (aBoolean) {
//权限申请成功后
} else {
//权限申请失败
ToastUtils.showToast(LoginActivity.this, getString(R.string.login_permission));
}
}
});
}