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);
}
}