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

本文共 1368 字,大约阅读时间需要 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);        }    }

 

转载地址:http://huaao.baihongyu.com/

你可能感兴趣的文章
微信小程序开发之表单验证(WxValidate使用)
查看>>
Oracle DataBase 各种版本资源路径汇总
查看>>
缓存名称服务器
查看>>
Ext.Loader 详解--中文
查看>>
sql server学习小结
查看>>
python发送邮件的实例代码(支持html、图片、附件)
查看>>
Linux 查看文件被占用信息
查看>>
tornado的异步库汇总- redis,mongo,celery,sockjs等
查看>>
JavaMail(一):入门
查看>>
什么是Redis持久化
查看>>
zookeeper和HBASE总结
查看>>
Servicehot告诉你运维常说的 5个9、4个9、3个9啥意思?
查看>>
脚本自动配置hadoop集群的ssh无密码登录
查看>>
php常用工具类
查看>>
systemd详解
查看>>
深入浅出Android打包
查看>>
goto语句
查看>>
Swift学习—函数
查看>>
Jqery Mobile 简单了解
查看>>
android edittext setInputType方法
查看>>