摘要

本文介绍了如何用最短的代码解决Android 6.0以上的动态权限申请问题

说明:

本文不讲原理不讲过程只讲如何用最简单的方法使用,如想了解具体原理可深入工具类的源码进行学习,或者去找其他资源。

添加相关依赖

在你项目的app gradle的dependencies下添加下列语句:

 implementation  'com.github.dfqin:grantor:2.1.0'

添加后Sync,即可将相关工具代码导入

代码实现动态权限申请

首先要保证在manifests里面加上你需要的权限,然后在MainActivity中添加如下方法:

private void RequestPermission() {
        String[] permissions = {Manifest.permission.RECORD_AUDIO, Manifest.permission.WRITE_EXTERNAL_STORAGE};
        if (PermissionsUtil.hasPermission(MainActivity.this, permissions)) {
            //已经获取相关权限
        } else {
            PermissionsUtil.requestPermission(MainActivity.this, new PermissionListener() {
                @Override
                public void permissionGranted(@NonNull String[] permission) {
//用户授予了权限
                }

                @Override
                public void permissionDenied(@NonNull String[] permission) {
//用户拒绝了权限
                    Toast.makeText(MainActivity.this, "相关权限被拒绝,本应用将无法正常运行", Toast.LENGTH_SHORT).show();
                }
            }, permissions);
        }
    }

然后在OnCreate中调用该方法即可,如果要申请其他的权限只需要把本文代码中permissions的内容改成你自己的即可。

参考资料

http://blog.csdn.net/dfqin/article/details/55190073 感谢博主提供的轮子。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐