当前位置: 移动技术网 > 移动技术>移动开发>Android > android 6.0动态权限适配工具解析

android 6.0动态权限适配工具解析

2019年01月09日  | 移动技术网移动技术  | 我要评论

android 6.0动态权限适配工具解析。

用不习惯其他第三方的权限适配工具,空余时间,自己动手封装了一个简洁的权限适配工具
效果图

依赖:

allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }
 dependencies {
            compile 'com.github.xiaohy61:permission:1.0.1'
    }

使用

1.单个权限申请:

 requestpermission.request(mainactivity.this, new onpermissionlistener() {
                    @override
                    public void onpermissionsuccess() {
                        toast.maketext(mainactivity.this,"取得权限",toast.length_short).show();
                    }

                    @override
                    public void onpermissionfailure(string[] permission) {
                        toast.maketext(mainactivity.this,"禁止权限",toast.length_short).show();
                    }
                }, manifest.permission.write_external_storage);

2.多个权限申请:

 requestpermission.request(mainactivity.this, new onpermissionlistener() {
                    @override
                    public void onpermissionsuccess() {
                        toast.maketext(mainactivity.this,"取得权限",toast.length_short).show();
                    }

                    @override
                    public void onpermissionfailure(string[] permission) {
                        toast.maketext(mainactivity.this,"禁止权限",toast.length_short).show();
                    }
                }, manifest.permission.call_phone,manifest.permission.camera);

requestpermission :

1.首先判断是否拥有申请的权限,作状态回调

public class requestpermission {


    public static void request(context context, onpermissionlistener listener, string... permissions) {

     //如果拥有权限,回调成功结果,缺少或者没有就去permissiondialogfragment申请权限   
        if(haspermission(context,permissions)){
            listener.onpermissionsuccess();
        }else {

            permissiondialogfragment dialogfragment = permissiondialogfragment.newinstance(permissions);
            dialogfragment.onpermissionlistener(listener);
            dialogfragment.show(((fragmentactivity) context).getsupportfragmentmanager(), "dialog");
        }





    }

    /**
     * 是否拥有了申请的权限
     * @param context
     * @param permissions
     * @return boolean
     */
    public static  boolean haspermission(context context,string... permissions){
        for (string permission: permissions) {
            if(permissionchecker.checkselfpermission(context,permission) != packagemanager.permission_granted){
                return false;
            }
        }
        return true;
    }

}

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网