Get the real file path from URI registered in media store - Android Media

Android examples for Media:Media File

Description

Get the real file path from URI registered in media store

Demo Code


//package com.java2s;

import android.app.Activity;
import android.content.CursorLoader;
import android.database.Cursor;

import android.net.Uri;
import android.os.Build;
import android.provider.MediaStore;

public class Main {
    /**// ww w .j  a v a 2 s . c om
     * Get the real file path from URI registered in media store 
     * @param contentUri URI registered in media store 
     */
    public static String getRealPathFromURI(Activity activity,
            Uri contentUri) {

        String releaseNumber = Build.VERSION.RELEASE;

        if (releaseNumber != null) {
            if (releaseNumber.length() > 0
                    && releaseNumber.charAt(0) == '4') {
                String[] proj = { MediaStore.Images.Media.DATA };
                String strFileName = "";
                CursorLoader cursorLoader = new CursorLoader(activity,
                        contentUri, proj, null, null, null);
                if (cursorLoader != null) {
                    Cursor cursor = cursorLoader.loadInBackground();
                    if (cursor != null) {
                        int column_index = cursor
                                .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
                        cursor.moveToFirst();
                        if (cursor.getCount() > 0)
                            strFileName = cursor.getString(column_index);

                        cursor.close();
                    }
                }
                return strFileName;
            }
            else if (releaseNumber.startsWith("2.3")) {
                String[] proj = { MediaStore.Images.Media.DATA };
                String strFileName = "";
                Cursor cursor = activity.managedQuery(contentUri, proj,
                        null, null, null);
                if (cursor != null) {
                    int column_index = cursor
                            .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

                    cursor.moveToFirst();
                    if (cursor.getCount() > 0)
                        strFileName = cursor.getString(column_index);

                    cursor.close();
                }
                return strFileName;
            }
        }

        String[] proj = { MediaStore.Images.Media.DATA };
        String strFileName = "";
        Cursor cursor = activity.managedQuery(contentUri, proj, null, null,
                null);
        if (cursor != null) {
            int column_index = cursor
                    .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

            activity.startManagingCursor(cursor);

            cursor.moveToFirst();
            if (cursor.getCount() > 0)
                strFileName = cursor.getString(column_index);

            activity.stopManagingCursor(cursor);
        }
        return strFileName;
    }
}

Related Tutorials