android 解决小米手机上选择照片路径为null的问题

在开发Android应用时,遇到小米手机从相册选择图片后返回的Uri为null导致崩溃的问题。经过研究,发现在小米手机上需要特别处理获取图片路径的代码。解决方案是在onActivityResult中,通过判断Intent的type并结合小米手机的特性来获取正确的图片Uri。此方法解决了小米手机上的问题,而在其他设备上则可以直接使用data.getData()获取Uri。
摘要由CSDN通过智能技术生成

        之前做了一个获取相册选择图片的功能,后来测试人员在小米的手机 测试时出现崩溃现象。自己就在网上查找资料,发现是小米的获取图片路径的代码与其他的手机不一样,于是修改了代码,解决了这个问题,这里记录一下。


这是在onActivityResult方法中执行的,

if (data == null) {
				return;
			}
			uri = data.getData();
			uri = geturi(data);//解决方案
			String[] proj = { MediaStore.Images.Media.DATA };
			Cursor cursor = query(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);
			}


这里面如果不加uri = 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值