美文网首页
Android6.0运行时权限解决方案--EasyPermiss

Android6.0运行时权限解决方案--EasyPermiss

作者: 张少林同学 | 来源:发表于2017-05-15 21:35 被阅读70次

    一.使用

    添加依赖:compile 'pub.devrel:easypermissions:0.2.0'

    二.准备

    在使用 EasyPermissions 之前,需要在 Activity或者 Fragment 中实现 EasyPermissions.PermissionCallbacks接口,并且覆盖以下方法:

    /** * 使用 AfterPermissioonGranted 注解。这是可选的,但是提供出来是为了方便。
          如果所有的请求的权限都被授予了,被注解的方法将会被执行,  
          这样做是为了简化通常的请求权限成功之后再调用方法的流程。 
          同时也可以在 onPermissionsGranted 的回    调中添加逻辑操作: 
          @AfterPermissionGranted(RC_WRITE)
          public void requestPermission() {    
            String[] perms = {Manifest.permission.WRITE_EXTERNAL_STORAGE};   
           //去判断 app 是否已经有权限了。该方法的最后个参数是可变数组形式的,所以可以一次性查询多个权限。
            if (EasyPermissions.hasPermissions(this, perms)) {       
                  startService(new Intent(mContext, UpdateService.class));   
             } else {       
                             //使用 EasyPermissions#requestPermissions 去请求权限。该方法在请求权限的同时有必要的话会显示使用权限理由。// requestCode 对于该方法来说必须是唯一的,同时最后个参数也是可变数组形式的,所以可以一次性请求多个权限       
                         EasyPermissions.requestPermissions(this, "下载应用需要文件写入权限哦~",                RC_WRITE, perms);   
               }
        }
        //处理权限是否成功申请
        @Override
        public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {                    
                  super.onRequestPermissionsResult(requestCode, permissions, grantResults);    
                // 将结果转发给EasyPermissions   
                 EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
        }
        @Override
        public void onPermissionsGranted(int requestCode, List<String> perms) {    
        //权限被赋予,requestCode必须是唯一的   
               if (RC_WRITE == requestCode) {      
                    startService(new Intent(mContext, UpdateService.class));    
            }
        }
        @Override
        public void onPermissionsDenied(int requestCode, List<String> perms) {   
             //权限被拒绝   
             ToastUtil.shortShow("取消更新 T T");
      }
    

    相关文章

      网友评论

          本文标题:Android6.0运行时权限解决方案--EasyPermiss

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