public static String getDataColumn(Context context, Uri uri, String selection,

                                       String[] selectionArgs) {



        Cursor cursor = null;

        final String column = "_data";

        final String[] projection = {

                column

        };



        try {

            cursor = context.getContentResolver().query(uri, projection, selection, selectionArgs,

                    null);

            if (cursor != null && cursor.moveToFirst()) {

                final int column_index = cursor.getColumnIndexOrThrow(column);

                return cursor.getString(column_index);

            }

        } finally {

            if (cursor != null)

                cursor.close();

        }

        return null;

    }
Get the value of the data column for this Uri. This is useful for
MediaStore Uris, and other file-based ContentProviders.

@param context The context.
@param uri The Uri to query.
@param selection (Optional) Filter used in the query.
@param selectionArgs (Optional) Selection arguments used in the query.
@return The value of the _data column, which is typically a file path.
app/src/main/java/com/zhao/myreader/util/UriFileUtil.java