如果您的内容Uri带有content://com.externalstorage...,则可以使用此方法获取Android 19或更高版本上的文件夹或文件的绝对路径。
public static String getPath(final Context context, final Uri uri) {
final boolean isKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;
// DocumentProvider
if (isKitKat && DocumentsContract.isDocumentUri(context, uri)) {
System.out.println(\"getPath() uri: \" + uri.toString());
System.out.println(\"getPath() uri authority: \" + uri.getAuthority());
System.out.println(\"getPath() uri path: \" + uri.getPath());
// ExternalStorageProvider
if (\"com.android.externalstorage.documents\".equals(uri.getAuthority())) {
final String docId = DocumentsContract.getDocumentId(uri);
final String[] split = docId.split(\":\");
final String type = split[0];<