private final int SELECT_IMAGE = 1;
private final int SELECT_MOVIE = 2;
// 이미지 선택
private void doSelectImage()
{
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.setType("image/*");
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
try
{
startActivityForResult(i, SELECT_IMAGE);
} catch (android.content.ActivityNotFoundException e)
{
e.printStackTrace();
}
}
// 동영상선택
private void doSelectMovie()
{
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.setType("video/*");
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
try
{
startActivityForResult(i, SELECT_MOVIE);
} catch (android.content.ActivityNotFoundException e)
{
e.printStackTrace();
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent)
{
super.onActivityResult(requestCode, resultCode, intent);
if (resultCode == RESULT_OK)
{
if (requestCode == SELECT_IMAGE)
{
Uri uri = intent.getData();
String path = getPath(uri);
String name = getName(uri);
String uriId = getUriId(uri);
Log.e("###", "실제경로 : " + path + "\n파일명 : " + name + "\nuri : " + uri.toString() + "\nuri id : " + uriId);
}
else if (requestCode == SELECT_MOVIE)
{
Uri uri = intent.getData();
String path = getPath(uri);
String name = getName(uri);
String uriId = getUriId(uri);
Log.e("###", "실제경로 : " + path + "\n파일명 : " + name + "\nuri : " + uri.toString() + "\nuri id : " + uriId);
}
}
}
// 실제 경로 찾기
private 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);
}
// 파일명 찾기
private 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 아이디 찾기
private 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);
}
댓글을 달아 주세요
아.. 감사합니다. 앨범에서 실제 파일경로 알아오는 방법을 찾지 못해서 엄청 고생했는데.
2011.05.03 06:41 [ ADDR : EDIT/ DEL : REPLY ]덕분에 겨우 해결했습니다!! ^^
다행이네요 ㅎㅎ
2011.05.03 09:40 신고 [ ADDR : EDIT/ DEL ]감사합니다..
이렇게 하니깐 되는데..
2011.05.27 16:31 [ ADDR : EDIT/ DEL : REPLY ]질문이 있는데요. String name 에 이미지 이름을 적으셧는대.
그 String name을 사용할려니 안되네요..
로그에 찍으면 나오는대;
이미지 경로는 uri.toString().substring(7).replaceAll("%3B", ";"
이미지 이름을 디비로 전송해야되서 .. 혹시 쫌 알려주세요.
위의 소스에 있는 getName() 함수도 가져가셨나요?
2011.05.27 16:42 신고 [ ADDR : EDIT/ DEL ]담아가기 기능이 업는거 같아서 죄송하지만 소스좀 긁어가겟습니다 ㅠㅠ
2011.07.18 19:39 [ ADDR : EDIT/ DEL : REPLY ]물론 출저는 표시해놓고요 좋은거 얻어갑니다
마음껏 가져가세요~
2011.07.18 20:12 신고 [ ADDR : EDIT/ DEL ]진짜 감사합니다.
2011.10.11 22:09 [ ADDR : EDIT/ DEL : REPLY ]완전 좋은 자료네요 ^^
아무리 검색해도 검색어도 모르겠고, 찾기 힘들었는데 덕분에 해결 했습니다.
허접한 소스가 도움이 될 수 있어서 다행입니다 ^^
2011.10.12 00:03 신고 [ ADDR : EDIT/ DEL ]여기서 받은 log 값을 새로운 activity 에 넘겨 줘야 하는데 어떻게 할 수 있을까요ㅠㅠ
2012.08.22 02:03 [ ADDR : EDIT/ DEL : REPLY ]
2012.08.22 06:52 신고 [ ADDR : EDIT/ DEL ]구글에서 activity 데이터 주고받기에 대해 검색하세요
앨범에서 사진을 여러장 선택해서 가져오려면 어떻게 해야되나요??
2013.02.06 14:26 [ ADDR : EDIT/ DEL : REPLY ]앨범은 띄워지는데 한장만 선택이 가능하더라구요
그리고 여러장 선택시 선택된 숫자만큼 파일 경로를 어떻게 가져오는지도좀....
여러 장은 안되는 것 같아요
2013.02.06 15:09 신고 [ ADDR : EDIT/ DEL ]쎄미님의 덕분에 목마르던 감을 풀었네요.장훈이에요.정말로 감사를 드려요.쎄미님의 장수를 바래요,
2013.02.12 12:30 [ ADDR : EDIT/ DEL : REPLY ]간결하면서도 한눈에 볼수 있는 코드라 바로 이해하는데 도움이 컷네요 감사합니다. ㅎ
2013.08.16 19:53 [ ADDR : EDIT/ DEL : REPLY ]우와 감사합니다 꼭 필요한 내용이...!
2013.09.17 01:19 [ ADDR : EDIT/ DEL : REPLY ]감사합니다 담아갈게요~
2014.08.28 18:00 신고 [ ADDR : EDIT/ DEL : REPLY ]동영상 URL 을 가져오는데 GETPath 에서 종료되여...
2015.05.06 19:59 [ ADDR : EDIT/ DEL : REPLY ]오류로그 보면 답이 나옵니다
2015.05.07 06:37 신고 [ ADDR : EDIT/ DEL ]동영상 URL 을 가져오는데 GETPath 에서 종료되여...
2015.05.06 19:59 [ ADDR : EDIT/ DEL : REPLY ]managedQuery 가 에러인데 뭐가 문제인지 모르겠습니다.
2015.05.21 18:57 [ ADDR : EDIT/ DEL : REPLY ]에러로그 보고 구글링 하세요
2015.05.22 06:45 신고 [ ADDR : EDIT/ DEL ]보석 찾기에 성공했네요.
2017.04.19 06:17 [ ADDR : EDIT/ DEL : REPLY ]에러 나는 분들 ...
onActivityResult 파라미터 가져올 때 잘못 코딩해서 <널> 넘어가는 경우도 있음을 참고하세요.
감사합니다.
이 페이지에 질문 올리기가 부적절한지 모르지만, 아무리 구글링하고 질문해도 답을 얻지 못해서 부탁을 드립니다.
;
);
2017.04.19 10:47 [ ADDR : EDIT/ DEL : REPLY ]Uri uriPart = Uri.parse("content://mms/part"
Cursor cursorPart = contentResolver.query(uriPart, null, selectionPart, null, null);
if ("video/mp4".equals(type)) {
String videoPath = cursorPart.getString(cursorPart.getColumnIndex("_data"
위 코드에서 얻어진 String videoPath를 가지고 비디오파일의 실제 저장된 경로를 알아올 수 있을까요?
이 페이지의 getPath 메소드에 Uri.parse(videoPath) 파라미터를 넘기니까 에러가 나고, 불가능한지 가능한지조차 몰라서 문의 드립니다.
http://tip.daum.net/question/94119329
자세한 내용은 위 페이지에 올려 두었습니다.
해결 : 메시지 첨부 비디오가 저장된 실제 경로 가져오기(갤럭시S3 폰)/[Android] http://blog.daum.net/andro_java/1176
2017.05.02 01:59 [ ADDR : EDIT/ DEL : REPLY ]