美文网首页
Android 6.0运行时权限惹的祸

Android 6.0运行时权限惹的祸

作者: xiaowen_2010 | 来源:发表于2016-08-17 23:12 被阅读340次

    最近在开发手机图片上传的功能时,使用的华为mate8手机进行测试,总会是出现读取不了资源或者写不了资源的错误,如下:

    java.io.FileNotFoundException: /storage/emulated/0/Pictures/Screenshots/Screenshot_2016-08-17-11-46-53.png: open failed: EACCES (Permission denied)
    

    在清单文件里添加了关于文件的读写权限,依旧是返回null,好无奈的赶脚。最终换了台小米5测试,发现没有出现这个错误。然后看了下系统,才想起来我的那台华为mate8是Android 6.0 的。MD,浪费了好多时间,最终找了关于6.0的运行时权限看了下,解决了问题,在此记录下,以免再犯。
    在你需要的地方去检测权限,代码如下:

    private static final int REQUEST_EXTERNAL_STORAGE = 1;
    private static String[] PERMISSIONS_STORAGE = {      
          Manifest.permission.READ_EXTERNAL_STORAGE,   
          Manifest.permission.WRITE_EXTERNAL_STORAGE };
        /** *  Android 运行时权限 */
    private void checkPermission() {   
         int permission = ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE);  
         if (permission != PackageManager.PERMISSION_GRANTED) {    
              ActivityCompat.requestPermissions( this,PERMISSIONS_STORAGE,//需要请求的所有权限,这是个数组String[]                
              REQUEST_EXTERNAL_STORAGE//请求码       
     );    }}
    

    相关文章

      网友评论

          本文标题:Android 6.0运行时权限惹的祸

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