Android--权限申明第三方库

这篇博客介绍了Android权限管理的三个库:AndPermission、RxPermissions和Permissions4M。文章详细阐述了如何使用这些库进行权限申请,包括在初始化阶段调用、依赖引入和不同权限申请的示例。推荐使用permissions4m,因为它更简洁易用。
摘要由CSDN通过智能技术生成

一、Android现在申请权限比较麻烦,在github查找到一个比较好用的库:AndPermission

依赖:

implementation 'com.yanzhenjie:permission:2.0.0-rc4'

在Fragment中要加上下面的语句,Activity中则可以省略,但我处理方式是都加上了,本身就是一个父类的重写方法,activity中用不用看自己。

// 在Fragment中这句话不能注释,否则Fragment接收不到获取权限的通知。
super.onRequestPermissionsResult(requestCode,permissions,grantResults);

获取多个权限:

// 先判断是否有权限。
if(AndPermission.hasPermission(this, Manifest.permission.READ_SMS)) {
    // 有权限,直接do anything.
} else {
    // 申请权限。
    AndPermission.with(this)
        .requestCode(100)
        .permission(Manifest.permission.WRITE_CONTACTS, Manifest.permission.READ_SMS)
        .send();
}

 

具体实现参考:https://blog.csdn.net/yanzhenjie1003/article/details/52503533

 

二、RxPermissions

 

必须在初始化阶段调用,例如onCreate()方法中

依赖:

 
compile 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.5@aar'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'io.reactivex.rxjava2:rxjava:2.0.5'

申请单个权限:

RxPermissions rxPermissions = new RxPermissions(MainActivity.this);
        rxPermissions.request(Manifest.permission.READ_EXTERNAL_STORAGE)
                .subscribe(new Observer<Boolean>() {
                    @Override
                    public void onSubscribe(Disposable d) {
                        Toast.makeText(MainActivity.this, "应用需要读写权限", Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void onNext(Boolean value) {
                        if(value){
                            Toast.makeText(MainActivity.this, "同意权限", Toast.LENGTH_SHORT).show();
                        }else {
                            Toast.makeText(MainActivity.this, "拒绝权限", Toast.LENGTH_S
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值