我想从图库中选择一张图片,然后在SD卡上获取图片的路径
Intent intent = new Intent();
intent.setType("image/*");
intent.putExtra("crop", "true");
intent.setAction(Intent.ACTION_PICK);
startActivityForResult(Intent.createChooser(intent,
"Select Picture"), 1);
然后活动结果为
public void onActivityResult(int requestCode, int resultCode, Intent data) {
String tempImage = null;
File f = null ;
if (resultCode == RESULT_OK && requestCode == 1 && data!=null)
{
Uri selectedImageUri = data.getData(); // always null Uri WHY?
selectedImagePath = getPath(selectedImageUri);
if(selectedImagePath!=null)
{
........
和getPath方法
public String getPath(Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(uri, projection, null, null, null);
int column_index = cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
问题是Uri selectedImageUri = data.getData();
给出空值。昨天工作正常。
偶数intent
不为空。
我尝试清理项目但问题仍然存在。
先谢谢!!
*更新解决方案*
解决方案是HERE
答案 0 :(得分:0)
这个正在我的申请中工作:
启动Image Chooser:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_PICK);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), 201);
从URI获取SD卡路径的功能。
private String decodePath(Uri data)
{
Cursor cursor = getContentResolver().query(data, null, null, null, null);
cursor.moveToFirst();
int idx = cursor.getColumnIndex(ImageColumns.DATA);
String fileSrc = cursor.getString(idx);
return fileSrc;
}