博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决华为手机图片选择无效及产生的open failed: EACCES (Permission denied)错误
阅读量:5846 次
发布时间:2019-06-18

本文共 1419 字,大约阅读时间需要 4 分钟。

在华为手机上调起图片选择时原来的效果如下

原来的代码是

Intent intent = new Intent(); intent.setAction(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); startActivityForResult(intent, CODE_PHOTO_REQUEST);

当使用ACTION_GET_CONTENT时,直接点击“图片”里的照片返回的uri = content://com.android.providers.media.documents/document/image%3A164287,而点击“图库”的照片返回的uri = content://media/external/images/media/164287,选择“图片”中的照片去截取时无效或提示此图片无法加载。

后将action改为ACTION_PICK:

Intent intent = new Intent(); intent.setAction(Intent.ACTION_PICK); intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*"); startActivityForResult(intent, CODE_PHOTO_REQUEST);

界面效果为:

这时候选择的图片返回的URI就都是content://media/external/images/media/164287格式的,都可以跳转裁剪界面

但是在裁剪后报出open failed: EACCES (Permission denied)的错误,说是由于没有READ_EXTERNAL_STORAGE(或WRITE_EXTERNAL_STORAGE)的权限,但是在清单文件中 已经加入了这两项权限,最后找到是因为应用的权限管理中禁用了存储权限,在跳转相册的代码前设置打开即可

public static void verifyStoragePermissions(Activity activity) {        // Check if we have write permission        int permission = ActivityCompat.checkSelfPermission(activity,                Manifest.permission.WRITE_EXTERNAL_STORAGE);//缺少什么权限就写什么权限        if (permission != PackageManager.PERMISSION_GRANTED) {            // We don't have permission so prompt the user            ActivityCompat.requestPermissions(activity, PERMISSIONS_STORAGE,                    REQUEST_EXTERNAL_STORAGE);        }    }

 

转载于:https://www.cnblogs.com/Sharley/p/9346550.html

你可能感兴趣的文章
java—三大框架详解,其发展过程及掌握的Java技术慨括
查看>>
Git 常用命令
查看>>
HDU 2289 Cup (二分)
查看>>
C#中使用Monitor类、Lock和Mutex类来同步多线程的执行
查看>>
[翻译] 使用CSS进行文字旋转
查看>>
读取本地已有的.db数据库
查看>>
C#发现之旅第十一讲 使用反射和特性构造自己的ORM框架
查看>>
使用GHOST对Windows操作系统进行备份和还原
查看>>
KMeans (K均值)算法讲解及实现
查看>>
为什么不应该使用Zookeeper做服务发现?(转载)
查看>>
《JavaScript核心概念及实践》——2.2 变量
查看>>
关于java 1.8的Lambda表达式详解
查看>>
各个网站的CSS清除代码
查看>>
TableView的集合
查看>>
软RAID管理命令mdadm详解
查看>>
控制器 控制器view cell的关系
查看>>
Eclipse RCP 玩转 Spring
查看>>
我的友情链接
查看>>
Nginx的健康检查机制
查看>>
Nginx介绍及企业web服务软件选择
查看>>