본문 바로가기
호구지책/Java/Android

[안드로이드] 갤러리의 실제경로 가져오기

by 하늘의흐름 2017. 3. 17.
반응형

managedQuery 메소드가 Deprecated 되었다.

이외에 startManagingCursor도 Deprecated 되었다.

그래서 새로운 방식으로 소스를 변경해야 했다.



예전의방식

public String getPath(Uri uri) {

	String[] projection = {MediaStore.Images.Media.DATA};
	Cursor cursor = managedQuery(uri, projection, null, null, null);

	startManagingCursor(cursor);

	int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

	cursor.moveToFirst();

	return cursor.getString(columnIndex);
}



새로운 방식

private String getRealPathFromURI(Uri contentURI) {
    
    String result;
    Cursor cursor = getContentResolver().query(contentURI, null, null, null, null);
    
    if (cursor == null) { // Source is Dropbox or other similar local file path
        result = contentURI.getPath();
    
    } else {
        cursor.moveToFirst();
        int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
        result = cursor.getString(idx);
        cursor.close();
    }
    
    return result;
}



그리고 참고글을 보면 실제 경로를 몰라도

URI만 가지고 기본적인 작업은 가능함을 알려주고 있다.



참고


http://stackoverflow.com/questions/36336498/get-real-path-from-android-uri-after-selecting-image-from-gallery



반응형

댓글