android 6.0动态权限适配工具解析
程序员文章站
2022-07-08 19:49:47
android 6.0动态权限适配工具解析。
用不习惯其他第三方的权限适配工具,空余时间,自己动手封装了一个简洁的权限适配工具
效果图
依赖:
allprojects {
r...
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; } }