1

这是一个代码,它返回给定 URI 的文件路径。

public String getPath(Uri uri) {
    String[] projection = { MediaStore.Images.Media.DATA };
    //String[] projection = { MediaColumns.DATA };

    Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
    int column_index = cursor.getColumnIndexOrThrow(MediaColumns.DATA);
    cursor.moveToFirst();
    return cursor.getString(column_index);
}

这适用于画廊中的图像,因为投影是 MediaStore.Images。如何获取所有其他目录的文件路径?该文件可以是文档类型,并且可以在 sd 卡的任何位置。我应该搜索什么投影文件路径?

4

1 回答 1

2

问题就在这里。它仅检查投影Images。因此,如果文件的类型不同,您将无法获得路径。Exception将被退回。也更好用:

 int column_index = cursor.getColumnIndex(MediaColumns.DATA);

并使用您的 onwtry-catch块。这将防止您的应用崩溃

于 2013-04-21T18:11:20.670 回答