안녕하세요 하나 질문드릴것이 있습니다 ㅠ
제가 버튼을 누르면 비디오 목록을 요청하고 거기서 비디오를 선택하면
선택한 비디오 파일의 절대 경로를 구할려고 합니다.
//비디오 목록 요청
startActivityForResult(
Intent.createChooser(
new Intent(Intent.ACTION_GET_CONTENT)
.setType("video/*"), "Choose Video"),
REQUEST_VIDEO
);
//intent요청 onactvityResult
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == RESULT_OK){
if(requestCode == REQUEST_VIDEO){
Uri uri = data.getData();
Toast.makeText(getContext(), "uri입니다 \n" + uri, Toast.LENGTH_SHORT).show();
String path = getRealPathFromURI(getActivity(),uri);
Toast.makeText(getContext(), "path입니다 \n" + path, Toast.LENGTH_SHORT).show();
}
}
}
위의 data.getData로 Uri값이 Content://로 시작하는데 저걸 절대경로로 변환하고 싶어서
밑의 추가 함수를 더했습니다.
public String getRealPathFromURI(Context context, Uri contentUri) {
Cursor cursor = null;
try {
String[] proj = { MediaStore.Images.Media.DATA };
cursor = context.getContentResolver().query(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
} finally {
if (cursor != null) {
cursor.close();
}
}
}
근데 자꾸 Null이 반환 됩니다
uri.getPath()하는것도 절대 경로는 아닌거 같아서 지금 찾고 있는데 null값이 나오거나 다운이 되네요ㅠ
절대 경로를 구하는법좀 부탁드립니다