Android M权限动态获取

作者: TruthKeeper | 来源:发表于2017-05-04 14:31 被阅读50次

    最近整理了一个Android 6.0以上的权限获取工具,要用到就直接复制粘贴好了

    直接看代码

    用法

    采用Glide的Fragment依附思想,无需继承Activity,傻瓜式调用,传入权限的String参数为可变长度型,支持2种模式

    • 普通的Callback回调
    • 通过RxJava2生成事件流

    Callback用法:

    //PermissionManager在action包下
    PermissionManager.with(this)
                     .request(new PermissionManager.Callback() {
                            @Override
                            public void call(PermissionResult result) {
                                process(result);
                            }
                        }, Manifest.permission.WRITE_EXTERNAL_STORAGE);
    

    RxJava2用法

    //PermissionManager在rx包下
    PermissionManager.with(this)
            .request(Manifest.permission.WRITE_EXTERNAL_STORAGE)
            .subscribe(new Consumer<PermissionResult>() {
                @Override
                public void accept(@NonNull PermissionResult permissionResult) throws Exception {
                    process(permissionResult);
                }
            });
    

    返回的权限结果处理实例:

    private void process(PermissionResult permissionResult) {
        if (permissionResult.isSuccessful()) {
            Toast.makeText(getApplicationContext(), "成功GET√", Toast.LENGTH_SHORT).show();
            return;
        }
        if (permissionResult.isDisable()) {
            //用户傲娇的勾选了不再提示,并且拒绝了权限
            Toast.makeText(getApplicationContext(), "权限被禁用啦,请手动开启权限", Toast.LENGTH_SHORT).show();
            PermissionManager.toSetting(MainActivity.this);
        } else {
            //用户拒绝了权限
            Toast.makeText(getApplicationContext(), "宝宝摔倒了,要开启权限才能爬起来~~~", Toast.LENGTH_SHORT).show();
        }
    
    }
    

    Ps:request方法用@TargetApi修饰,API23以下不执行

    效果

    最后附上一些6.0以上的危险权限(默认不开启)

    危险权限

    9个大类分别是

    • 读写日历
    • 相机
    • 通讯录的读写
    • 位置
    • 麦克风
    • 通话相关
    • 传感器
    • 短信相关
    • 手机存储

    其中在6.0以上,在对应分组下只要有一条权限被授权,当前分组下的所有权限都被授权

    点击获取代码

    相关文章

      网友评论

        本文标题:Android M权限动态获取

        本文链接:https://www.haomeiwen.com/subject/nonrtxtx.html