android 小米手机选择相册图片截取照片不进onActivityResult报“保存时发生错误,保存失败”
小米选择相册时如果不使用系统截屏,直接压缩不会报“保存时发生错误,保存失败”的错误,如果截屏就会报如上错误。
需要把URI地址转为图片地址,再包成file文件转为URI
Uri uri = intent.getData();String type = intent.getType();if (uri.toString().contains("com.miui.gallery.open")) {uri = getImageContentUri(activity, new File(getRealFilePath(activity, uri)));}
uri转为图片地址
/*** 将URI转为图片的路径** @param context* @param uri* @return*/public static String getRealFilePath(final Context context, final Uri uri) {if (null == uri)return null;final String scheme = uri.getScheme();String data = null;if (scheme == null)data = uri.getPath();else if (ContentResolver.SCHEME_FILE.equals(scheme)) {data = uri.getPath();} else if (ContentResolver.SCHEME_CONTENT.equals(scheme)) {Cursor cursor = context.getContentResolver().query(uri,new String[]{ImageColumns.DATA}, null, null, null);if (null != cursor) {if (cursor.moveToFirst()) {int index = cursor.getColumnIndex(ImageColumns.DATA);if (index > -1) {data = cursor.getString(index);}}cursor.close();}}return data;}
最后转成uri
public static Uri getImageContentUri(Context context, File imageFile) {String filePath = imageFile.getAbsolutePath();Cursor cursor = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,new String[]{MediaStore.Images.Media._ID},MediaStore.Images.Media.DATA + "=? ",new String[]{filePath}, null);if (cursor != null && cursor.moveToFirst()) {int id = cursor.getInt(cursor.getColumnIndex(MediaStore.MediaColumns._ID));Uri baseUri = Uri.parse("content://media/external/images/media");return Uri.withAppendedPath(baseUri, "" + id);} else {if (imageFile.exists()) {ContentValues values = new ContentValues();values.put(MediaStore.Images.Media.DATA, filePath);return context.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);} else {return null;}}}
android 小米手机选择相册图片截取照片不进onActivityResult报“保存时发生错误,保存失败”相关推荐
- Android 华为手机获取相册图片路径,获取不到问题
未经本人授权,不得转载!否则必将维权到底 有个需求,可以从系统相册选择图片,上传到服务器.那么选择从系统相册选择完图片后,图片的名字需要显示在页面上.这里出了个 Bug,华为手机用系统的方法,获取相册 ...
- Android实现拍照选择相册图片上传图片(多图片上传)功能
安卓多图片上传代码 直接上代码 1.主程序入口XML文件 <?xml version="1.0" encoding="utf-8"?> <ma ...
- 红米note系列裁剪图片时报错:保存时发生错误,保存失败!
项目中有需要裁剪图片的功能,使用的是系统裁剪工具,在已有的多个测试机和模拟器上均正常运行,突然有用户说裁剪图片时报如题错误,app没有崩,所以一直没检测到错误日志,统计后发现大部分在红米noto系列报 ...
- Android--使用手机拍照获取图片路径,小米手机选择照片问题处理
Android开发选取照片问题 本文主要记录使用手机自带相机拍照获取返回照片路径,以及从本地相册选取已有照片时返回Intent data; 数据处理 操作.(小米手机获取照片路径与其他手机不一致问题! ...
- 小米手机从相册获取照片异常,返回空指针异常
现象: 小米手机MIUI 8 从相册获取照片返回空指针异常 小米手机选择了图片之后,当前Activity会崩掉(别的手机,其他版本都没问题).看异常信息,指示各种空指针异常.也就是说图片路径空了.是u ...
- 小米手机从相册获照片返回空指针异常
小米手机选择了图片之后,小米机会崩掉(别的机子,啥版本都没问题).看异常信息,指示cursor.moveToFirst(),空指针异常.也就是说,cursor为空.是uri的问题,4.4之前,返回的是 ...
- Android开发 调用系统相机相册图片功能,解决小米手机拍照或者图片横竖相反问题,及小米手机相册图片路径问题
Android开发 调用系统相机相册图片功能,解决小米手机拍照或者图片横竖相反问题,及小米手机相册图片路径问题 1.调用相机,兼容7.0 AndroidManifest配置 <providera ...
- android小米手机上传图片,android 解决小米手机上选择照片路径为null的问题
释放双眼,带上耳机,听听看~! 之前做了一个获取相册选择图片的功能,后来测试人员在小米的手机 测试时出现崩溃现象.自己就在网上查找资料,发现是小米的获取图片路径的代码与其他的手机不一样,于是修改了代码 ...
- Android拍照与选择相册照片后裁剪图片,相册多出副本问题
最近做的一个需求,简单的实现上传头像,包含拍照以及选择照片. 但客户要求的是,需要裁剪. 正常实现需求后,回报问题说,每次选择相册中的照片并裁剪后,相册都有出现多一张裁剪后的照片. 看了代码,由于An ...
最新文章
- HP CP1215打印机遇到spoolsv.exe错误。
- Quarkus 0.12.0 发布,下一代 K8s 原生 Java 框架
- ubuntu-桌面版-常用设置
- python rpc框架-python使用rpc框架gRPC的方法
- Javascript函数调用的四种模式
- 传统POS/终端/银联POS简介
- 延时函数、数码管显示头文件(单片机)
- animate支持的css属性
- session的生命周期是怎样的
- chrome浏览器关闭百度热搜——AdBlock插件
- teamtalk部署
- 《仿人机器人原理与实战》一第1章
- 结构体初始化、结构体指针、结构体数组
- android多开原理和检测。
- 派森诺转录+代谢组联合分析
- 2019春招宇视科技嵌入式面试
- true在java_使用truelicense实现用于JAVA工程license机制
- linux重做系统分区,如何重装linux系统
- PS-图像处理:PS抠出图片中的图形轮廓渐变填充
- 天下国家之事,败于小人者十一,败于君子者十九(转)
热门文章
- 大聪明教你学Java | Spring Boot 使用自定义注解实现防止表单重复提交
- SQLite database disk image is malformed死亡错误及初恢复
- 最小二乘法(Least Squares)简介
- Openstack的error僵尸实例的解决办法
- php 实现抽奖程序中奖概率算法
- iPhone和iPad的图标
- Javascript深入浅出理解----汤姆大叔博客(二)
- C++父类与子类关系以及函数重载、覆盖和隐藏规则 http://blog.csdn.net/xingyu19871124/article/details/7640131
- 【03月15日】农牧渔产品行业的估值高度排名
- php开发APP接口(一)