从Intent URI获取绝对路径

时间:2019-05-27 19:23:52

标签: android path uri

我需要附件的 real 路径。

这是目的:

            Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
            intent.addCategory(Intent.CATEGORY_OPENABLE);
            intent.setType("*/*");
            startActivityForResult(intent, Constants.TRACK_RESPONSE_CODE);

这是onActivityResult方法:

 if (requestCode == Constants.TRACK_RESPONSE_CODE && resultCode == RESULT_OK){

        path = data.getData().getPath();
    }

我得到:

d/document/image:65576

这对我完全没用。

我也尝试过:

new File(data.getData()).getAbsolutePath();

相同的结果。

我需要绝对路径或引用文件本身的内容。

对于图像,我使用了在这里看到的这种方法,但是它给了我一个光标错误:

public String getRealPathFromURI(Uri uri) {
        try {
            Cursor cursor = getContentResolver().query(uri, null, null, null, null);
            cursor.moveToFirst();
            int idx = cursor.getColumnIndex(MediaStore.Images.Media.DATA);
            return cursor.getString(idx);
        } catch (NullPointerException nh){return "none";}
    }

哪个给了我类似的东西

d/storage/emulated/Downloads//IMG-20190527.jpg

但是它仅适用于某种图像(JPG,而不是PNG)。

此刻我有点绝望,因为我认为这可能真的很容易。我想念什么吗?

0 个答案:

没有答案