마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

죄송하지만 갤러리에서 불러오는 이미지 정보 공통코드화 하는 방법에 질문 드리려 합니다.

0 추천
	public String getRealPathFromURI(Uri contentUri) {
	    // can post image
	    String [] proj={MediaStore.Images.Media.DATA};
	    Cursor cursor = managedQuery( contentUri,
	            proj, // Which columns to return
	            null,       // WHERE clause; which rows to return (all rows)
	            null,       // WHERE clause selection arguments (none)
	            null); // Order-by clause (ascending by name)
	    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
	    cursor.moveToFirst();
	    return cursor.getString(column_index);
	}

안녕하세요. 많은 질문들이 있지만,,, 막히는 부분이 있어 질문 드려요 ...

제가 FileUtil 이라는 새로운 클래스를 생성하여 Uri 를 통해 실제 경로를 가져오는 소스를 공통으로 사용하려고 하는데요. manageQuery가 Error 가 납니다.

Activity를 상속해서 사용하려고 해도 잘 먹히지 않는데요. 어떻게 방법이 없겠습니까?.

import java.io.File;

import android.app.Activity;
import android.database.Cursor;
import android.net.Uri;
import android.os.Environment;
import android.provider.MediaStore;

public class FileUtil{
	
	public static String strFilePath = "";

	public static String getStrFilePath() {
		return strFilePath;
	}

	public static void setStrFilePath(String strFilePath) {
		FileUtil.strFilePath = strFilePath;
	}
	
	// 실제 경로 찾기
	public String getPath(Uri uri)
	{
	    String[] projection = { MediaStore.Images.Media.DATA };
	    Cursor cursor = managedQuery(uri, projection, null, null, null);
	    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
	    cursor.moveToFirst();
	    return cursor.getString(column_index);
	}
	
	// 파일명 찾기
	public String getName(Uri uri)
	{
	    String[] projection = { MediaStore.Images.ImageColumns.DISPLAY_NAME };
	    Cursor cursor = managedQuery(uri, projection, null, null, null);
	    int column_index = cursor
	            .getColumnIndexOrThrow(MediaStore.Images.ImageColumns.DISPLAY_NAME);
	    cursor.moveToFirst();
	    return cursor.getString(column_index);
	}
	 
	// uri 아이디 찾기
	public String getUriId(Uri uri)
	{
	    String[] projection = { MediaStore.Images.ImageColumns._ID };
	    Cursor cursor = managedQuery(uri, projection, null, null, null);
	    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.ImageColumns._ID);
	    cursor.moveToFirst();
	    return cursor.getString(column_index);
	}
}

 

ParkYoung (300 포인트) 님이 2015년 5월 22일 질문
무슨 에러가 나는지 올려야 답을 하죠.

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...