栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

国庆节到了,安利一个Android的自动动态授权插件

Java 更新时间:发布时间: 百科书网 趣学号


Android的老铁都知道申请权限时,除了要在AndroidManifest添加权限,还需要在activity中通过requestpermission对应的权限,感觉还是有点麻烦的。

要是有个插件,只需要在AndroidManifest中申请的权限,也不需要在activity中一个个requestpermission权限的话,起步爽哉!

AutoPermit帮你解决这个痛点!

我们来看看如何使用它。

1 AndroidManifest申请权限

在AndroidManifest中申请了如下权限:

  
  

2 Activity中动态申请权限 2.1 系统动态申请权限
if (ContextCompat.checkSelfPermission(getApplication(), Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED) {  
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {  
        requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 10);  
    }  
}  
if (ContextCompat.checkSelfPermission(getApplication(), Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED) {  
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {  
        requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 10);  
    }  
}  
if (ContextCompat.checkSelfPermission(getApplication(), Manifest.permission.READ_CALENDAR) == PackageManager.PERMISSION_DENIED) {  
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {  
        requestPermissions(new String[]{Manifest.permission.READ_CALENDAR}, 10);  
    }  
}

是不是觉得很麻烦,而且若是你申请10个动态权限,岂不是要写10个,我们看看用AutoPermit是什么情况?

2.2 AutoPermit申请权限 2.2.1 依赖

下载AutoPermitAAR包,并依赖,目前还没有上传到maven仓库。

2.2.2 使用

AutoPermit有两种方式,一种,完全自动请求权限;另一种,手动请求权限。通过setAuto为true为自动,False为手动。

  • 自动请求权限
    只需要在AndroidManifest中申请权限就可以了,AutoPermit会自动获取哪些权限需要动态申请。
AutoPermit.With(this)  
        .setAuto(true)  
        .setRequestCode(10)  
        .request();
  • 手动请求权限
    除了需要在AndroidManifest中申请权限,还需要在setPermissions中添加对应的权限。
AutoPermit.With(this)  
        .setAuto(false) //
        .setPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,  
                Manifest.permission.READ_CALENDAR,  
                Manifest.permission.READ_EXTERNAL_STORAGE})  
        .setRequestCode(10)  
        .request();
3.权限成功回调

在权限回调成功后可以做相应的处理。

@Override  
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {  
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);  
    if (requestCode == 10) {  
        for (String p : permissions) {  
            Log.e(MainActivity.class.getSimpleName(), "permission:" + p);  
        }  
    }  
}
源码地址

AutoPermit github仓库
AutoPermit gitee仓库
欢迎点赞

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/281743.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号