我需要附件的 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)。
此刻我有点绝望,因为我认为这可能真的很容易。我想念什么吗?