小米选择相册时如果不使用系统截屏,直接压缩不会报“保存时发生错误,保存失败”的错误,如果截屏就会报如上错误。

需要把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报“保存时发生错误,保存失败”相关推荐

  1. Android 华为手机获取相册图片路径,获取不到问题

    未经本人授权,不得转载!否则必将维权到底 有个需求,可以从系统相册选择图片,上传到服务器.那么选择从系统相册选择完图片后,图片的名字需要显示在页面上.这里出了个 Bug,华为手机用系统的方法,获取相册 ...

  2. Android实现拍照选择相册图片上传图片(多图片上传)功能

    安卓多图片上传代码 直接上代码 1.主程序入口XML文件 <?xml version="1.0" encoding="utf-8"?> <ma ...

  3. 红米note系列裁剪图片时报错:保存时发生错误,保存失败!

    项目中有需要裁剪图片的功能,使用的是系统裁剪工具,在已有的多个测试机和模拟器上均正常运行,突然有用户说裁剪图片时报如题错误,app没有崩,所以一直没检测到错误日志,统计后发现大部分在红米noto系列报 ...

  4. Android--使用手机拍照获取图片路径,小米手机选择照片问题处理

    Android开发选取照片问题 本文主要记录使用手机自带相机拍照获取返回照片路径,以及从本地相册选取已有照片时返回Intent data; 数据处理 操作.(小米手机获取照片路径与其他手机不一致问题! ...

  5. 小米手机从相册获取照片异常,返回空指针异常

    现象: 小米手机MIUI 8 从相册获取照片返回空指针异常 小米手机选择了图片之后,当前Activity会崩掉(别的手机,其他版本都没问题).看异常信息,指示各种空指针异常.也就是说图片路径空了.是u ...

  6. 小米手机从相册获照片返回空指针异常

    小米手机选择了图片之后,小米机会崩掉(别的机子,啥版本都没问题).看异常信息,指示cursor.moveToFirst(),空指针异常.也就是说,cursor为空.是uri的问题,4.4之前,返回的是 ...

  7. Android开发 调用系统相机相册图片功能,解决小米手机拍照或者图片横竖相反问题,及小米手机相册图片路径问题

    Android开发 调用系统相机相册图片功能,解决小米手机拍照或者图片横竖相反问题,及小米手机相册图片路径问题 1.调用相机,兼容7.0 AndroidManifest配置 <providera ...

  8. android小米手机上传图片,android 解决小米手机上选择照片路径为null的问题

    释放双眼,带上耳机,听听看~! 之前做了一个获取相册选择图片的功能,后来测试人员在小米的手机 测试时出现崩溃现象.自己就在网上查找资料,发现是小米的获取图片路径的代码与其他的手机不一样,于是修改了代码 ...

  9. Android拍照与选择相册照片后裁剪图片,相册多出副本问题

    最近做的一个需求,简单的实现上传头像,包含拍照以及选择照片. 但客户要求的是,需要裁剪. 正常实现需求后,回报问题说,每次选择相册中的照片并裁剪后,相册都有出现多一张裁剪后的照片. 看了代码,由于An ...

最新文章

  1. HP CP1215打印机遇到spoolsv.exe错误。
  2. Quarkus 0.12.0 发布,下一代 K8s 原生 Java 框架
  3. ubuntu-桌面版-常用设置
  4. python rpc框架-python使用rpc框架gRPC的方法
  5. Javascript函数调用的四种模式
  6. 传统POS/终端/银联POS简介
  7. 延时函数、数码管显示头文件(单片机)
  8. animate支持的css属性
  9. session的生命周期是怎样的
  10. chrome浏览器关闭百度热搜——AdBlock插件
  11. teamtalk部署
  12. 《仿人机器人原理与实战》一第1章
  13. 结构体初始化、结构体指针、结构体数组
  14. android多开原理和检测。
  15. 派森诺转录+代谢组联合分析
  16. 2019春招宇视科技嵌入式面试
  17. true在java_使用truelicense实现用于JAVA工程license机制
  18. linux重做系统分区,如何重装linux系统
  19. PS-图像处理:PS抠出图片中的图形轮廓渐变填充
  20. 天下国家之事,败于小人者十一,败于君子者十九(转)

热门文章

  1. 大聪明教你学Java | Spring Boot 使用自定义注解实现防止表单重复提交
  2. SQLite database disk image is malformed死亡错误及初恢复
  3. 最小二乘法(Least Squares)简介
  4. Openstack的error僵尸实例的解决办法
  5. php 实现抽奖程序中奖概率算法
  6. iPhone和iPad的图标
  7. Javascript深入浅出理解----汤姆大叔博客(二)
  8. C++父类与子类关系以及函数重载、覆盖和隐藏规则 http://blog.csdn.net/xingyu19871124/article/details/7640131
  9. 【03月15日】农牧渔产品行业的估值高度排名
  10. php开发APP接口(一)