搜索
热搜: 活动 交友 discuz
查看: 3969|回复: 0
打印 上一主题 下一主题

Android4.4从图库选择图片返回的路径不正确的解决方法

[复制链接]

160

主题

165

帖子

814

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
814
跳转到指定楼层
楼主
发表于 2016-1-9 16:36:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

从图库里选择图片是我们开发中非常常用的功能,如上传头像,上传相册。Android4.4之前的版本打开图库选择图片可以这样:

[java] view plaincopyprint?


  • Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);  
  • intent.setType("image/*");  
  • activity.startActivityForResult(intent, START_ALBUM_CODE);  


或:

[java] view plaincopyprint?


  • Intent intent = new Intent(Intent.ACTION_PICK, null);  
  • intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,  
  • "image/*");  
  • activity.startActivityForResult(intent, START_ALBUM_CODE);  


然后我们重写onActivityResult(),在返回的data里我们就能获取图片的路径(怎么获取path可以到网上搜索下)。
可是在Android4.4上测试却出现问题了,获取不到正确的路径,获取的path是这样的:/document/image%3A29817,和我们正常的path:/mnt/sdcard/DCIM/100MEDIA/IMAG0021.jpg,不一样。
在Android4.4上有效的方法应该是这样(也兼容4.4以前的版本):

  1. Intent intent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
  2. intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,"image/*");
  3. activity.startActivityForResult(intent, START_ALBUM_CODE);
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|安卓论坛  

GMT+8, 2024-5-19 19:05 , Processed in 0.062974 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2013 Design S!|ƽ̶

快速回复 返回顶部 返回列表