Android的 - startActivityForResult获取文件的路径 [英] Android - startActivityForResult for getting file's path

查看:424
本文介绍了Android的 - startActivityForResult获取文件的路径的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我为Android编写一个简单的图像浏览器。我的应用程序有按钮,在从库打开文件。所以,当我从选用画廊的形象,它必须返回到文件到我的应用程序的路径,但它返回一个奇怪的Uri,它看起来像内容://媒体/存储/ 2CH / 30128

I'm writing a simple image viewer for Android. My app have the "Open file from Gallery" button. So, when I've choosed the image from Gallery, it must return the path to file into my app, but it return a strange Uri, which looks like content://media/storage/2ch/30128.

我如何得到这个开放的绝对路径?
下面是一些code发动画廊:

How I can get an absolute file path from this Uri? Here's some code for launching Gallery:

    Intent i = new Intent();
    i.setType("image/*");
    i.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(Intent.createChooser(i, "Выберите файл"), PICTURE_REQUEST_CODE);


P.S。借口,我的英语


P.S. Excuse for my English

推荐答案

使用此code

protected void onActivityResult(int requestCode, int resultCode, Intent data) {  

   super.onActivityResult(requestCode, resultCode, data); 
   if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data){

      Uri selectedImage = data.getData();
      String[] filePathColumn = { MediaStore.Images.Media.DATA };
      Cursor cursor = getContentResolver().query(selectedImage,filePathColumn, null, null, null);
      cursor.moveToFirst();
      int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
      String picturePath = cursor.getString(columnIndex);
      cursor.close();
}

这篇关于Android的 - startActivityForResult获取文件的路径的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆