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

一.使用

添加依赖: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");
  }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,272评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,678评论 19 139
  • 1.Post-Hilarity Myalgia——哈哈哈哈笑到肚子痛 这是一种大受欢迎的痛苦,常常伴随着腹部痉挛和...
    神秘的大熊阅读 16,682评论 2 8
  • 文章来自:Scalers:坚持写作1000天,我的生活有什么改变? 注:正常字体摘自原文,阴影字体文字是自己的笔记...
    于帅Jacob阅读 393评论 0 1
  • 二十一二岁,刚从大学毕业的您,还不知道要什么?还在稀里糊涂的听从父母的话,进一个不知道未来,或者一条路看到头的工作...
    小幸运工坊阅读 240评论 0 0

友情链接更多精彩内容