Android6.0动态权限最简单的解决方法


前言:动态权限管理是Android6.0(B>uild.VERSION_CODES.M =Api23)推出的,提醒用户当前APP所需>要的权限,防止滥用。这些权限一般分为三种:

(1)普通权限:直接manifest清单文件中写上注册就行了
(2)危险权限:需要动态申请
(3)特殊权限:一般用不上。

原声的动态权限管理很麻烦,代码也不够优雅,因此就有很多的动态权限管理库,比较出名一点的有:

  1. EasyPermissions
  2. RuntimePermission
  3. RxPermissions

相较于其他的权限管理库,RxPermissions的代码最为简洁,逻辑也更加清晰。


首先引入RxPermissions:

Github地址
我的博客地址


关键代码如下:

RxPermissions rxPermissions = new RxPermissions(this);
        rxPermissions
                .requestEach(Manifest.permission.READ_PHONE_STATE,//读取电话
                        Manifest.permission.ACCESS_COARSE_LOCATION)//获取位置信息
                .subscribe(permission -> {
                    if (permission.granted) {
                        Log.d("rxPermissions", permission.name + "同意了");
                        switch (permission.name) {
                            case Manifest.permission.READ_PHONE_STATE:
                                break;
                            case Manifest.permission.ACCESS_COARSE_LOCATION:
                                break;
                        }
                    } else if (permission.shouldShowRequestPermissionRationale) {
                        Log.d("rxPermissions", permission.name + "拒绝了");
                        switch (permission.name) {
                            case Manifest.permission.READ_PHONE_STATE:
                                break;
                            case Manifest.permission.ACCESS_COARSE_LOCATION:
                                break;
                        }
                    } else {
                        switch (permission.name) {
                            case Manifest.permission.READ_PHONE_STATE:
                                break;
                            case Manifest.permission.ACCESS_COARSE_LOCATION:
                                break;
                        }
                        Log.d("rxPermissions", permission.name + "拒绝并不再提示了");
                    }
                });

运行结果:

image

image
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容