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.
sample/src/main/java/com/fenctose/imagecropper/BitmapUtils.java