android 解决小米手机上选择照片路径为null情况
昨天测试帅哥说他手机选择图库崩溃了,这是一个上传头像的功能,相信很多应用都有这个功能,于是我就把手机拿过来打log看了下返回的路径 为null,在网上搜索了下解决方案,现在把解决方案记录下:
这是在onActivityResult方法中执行的,
if (data == null) { return; } uri = data.getData(); uri = geturi(data);//解决方案 String[] proj = { MediaStore.Images.Media.DATA }; Cursor cursor = managedQuery(uri, proj, null, null, null); if(cursor!=null){ int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); String path = cursor.getString(column_index);// 图片在的路径 Intent intent3 = new Intent(this, SYClipActivity.class); intent3.putExtra("path", path); startActivityForResult(intent3, IMAGE_COMPLETE); }
/** * 解决小米手机上获取图片路径为null的情况 * @param intent * @return */ public Uri geturi(android.content.Intent intent) { Uri uri = intent.getData(); String type = intent.getType(); if (uri.getScheme().equals("file") && (type.contains("image/"))) { String path = uri.getEncodedPath(); if (path != null) { path = Uri.decode(path); ContentResolver cr = this.getContentResolver(); StringBuffer buff = new StringBuffer(); buff.append("(").append(Images.ImageColumns.DATA).append("=") .append("'" + path + "'").append(")"); Cursor cur = cr.query(Images.Media.EXTERNAL_CONTENT_URI, new String[] { Images.ImageColumns._ID }, buff.toString(), null, null); int index = 0; for (cur.moveToFirst(); !cur.isAfterLast(); cur.moveToNext()) { index = cur.getColumnIndex(Images.ImageColumns._ID); // set _id value index = cur.getInt(index); } if (index == 0) { // do nothing } else { Uri uri_temp = Uri .parse("content://media/external/images/media/" + index); if (uri_temp != null) { uri = uri_temp; } } } } return uri; }
果然是生活处处有大神;
http://blog.csdn.net/coderinchina/article/details/50799501
android 解决小米手机上选择照片路径为null情况相关推荐
- android 解决小米手机上选择照片路径为null的问题
之前做了一个获取相册选择图片的功能,后来测试人员在小米的手机 测试时出现崩溃现象.自己就在网上查找资料,发现是小米的获取图片路径的代码与其他的手机不一样,于是修改了代码,解决了这个问题,这里记录一下. ...
- android小米手机上传图片,android 解决小米手机上选择照片路径为null的问题
释放双眼,带上耳机,听听看~! 之前做了一个获取相册选择图片的功能,后来测试人员在小米的手机 测试时出现崩溃现象.自己就在网上查找资料,发现是小米的获取图片路径的代码与其他的手机不一样,于是修改了代码 ...
- Android 解决小米手机添加图片水印后显示黑边的问题
背景 由于选择图片后需要需要在图片上添加logo,经纬度坐标,天气.时间等内容(图片水印) 测试反馈在小米手机上选择图片上传后有图片在右边和下边有一条黑边 具体查看下图 调用代码如下使用O.V.H.及 ...
- exif.js解决ios手机上传照片后显示为旋转90度问题(兼容ios13.4之前的版本 )
exif.js解决ios手机上传照片后显示为旋转90度问题(兼容ios13.4 ) 问题描述: 在做手机移动端app时,发现iOS12.5.1版本(iphone6)上传照片出现顺时针旋转90问题,ip ...
- [Android]解决小米手机神坑问题:Installation failed with message Failed to establish session
问题描述:小米手机可以从应用商城下载安装APK,但是用Android Studio编译安装就不行!出现这个错误: Installation failed with message Failed to ...
- android华为获取相册,解决华为手机获取相册图片路径为null
最近代码君遇到一个问题,在其他手机调用系统相册获取图片路径都是可以的,但是华为手机,执行相同代码,会报空指针异常,网上找了很多资料,都没什么实用的效果 Intent intent; intent = ...
- Android解决华为手机上出现Register too many Broadcast Receivers的crash
记录一下,方便下次找到! 这里只提供解决方法,需要相关原理请移动本文末尾! 第一步: 在项目lib的gradle引入库 dependencies {// add dependenciesimpleme ...
- 解决华为手机获取相册图片路径为null
最近代码君遇到一个问题,在其他手机调用系统相册获取图片路径都是可以的,但是华为手机,执行相同代码,会报空指针异常,网上找了很多资料,都没什么实用的效果 Intent intent; intent = ...
- 小米手机相册选择并裁剪图片
/** * 裁剪原始的图片 */ public static final int PHOTOZOOM = 2; // 缩放 public static final int PHOTORESOULT = ...
最新文章
- 为什么 StringBuilder 不是线程安全的?
- mysql数据库基本操作练习
- PXE+Kickstart实现无人值守批量安装Linux
- Android --- GridLayoutManager 设置了 item 均匀分布,但是无效
- 新兴短距离无线通信技术ZigBee入门到进阶
- boost::mpl模块实现pair_view相关的测试程序
- QT学习笔记(1)----- QT简介
- oracle查看列状态unused,Oracle9i下将列设为UNUSED时的系统行为
- 【知了堂学习笔记】MySQL数据库常用的SQL语句整理
- 电商美工怎么做促销海报,才让内容更有吸引力?看看这些大咖都在学习的优秀素材模板!
- src与href区别
- 【转】重装系统后找不到硬盘
- butterknife 配置了点击和绑定无效
- 视频教程-网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】-网络技术
- 片袖原型制图_袖原型一片袖打版干货
- 目标跟踪(二):拓展卡尔曼滤波(EKF)
- 数据挖掘技术具有哪些特点?
- Windows环境黑客入侵应急与排查
- 2018暑假集训Day1
- 快速打印天干地支纪年
热门文章
- 十五、MDT 2013 Update 1批量部署-利用微软WDS部署服务实现MDT部署组播(多播)
- 奠(wa)基(keng)仪(kai)式(shi)—Linux随笔1
- FANUC机器人RSR自动运行模式的相关配置和参数设置(图文)
- 笔记:《高效能人士的七个习惯》第十章 习惯七 不断更新——平衡的自我提升的原则
- java fx 皮肤_【FX】CSGO武器皮肤的应用与禁止。
- java实验Lambda语法糖_Java: 语法糖 -- Lambda
- java swing中计算器_java swing示例(计算器)
- RS Meet DL(59)-FM家族的新朋友FAT-DeepFFM
- 在CLion中配置OpenSSL开发环境
- mysqltruncate函数