Android Gallery 호출 ACTION_PICK vs ACTION_GET_CONTENT

98oys·2022년 5월 23일
0

안드로이드

목록 보기
11/20

Gallery를 호출할 때 Intent에 넣는 String 파라미터는 두가지가 있습니다.

public Intent(String action) {
        setAction(action);
    }
    
public Intent(String action, Uri uri) {
        setAction(action);
        mData = uri;
    }
  1. val intent = Intent(Intent.ACTION_PICK)
  2. val intent = Intent(Intent.ACTION_GET_CONTENT)

Android 공식 문서에는 ACTION_GET_CONTENT를 사용하라고 명시되어있습니다.

ACTION_PICK는 INTENT.setAction()의 두번째 파라미터에 들어가는 Uri의 값을 명시적으로 지정하여 해당 Uri를 사용하는 앱을 호출할 때 사용합니다.

일반적으로 갤러리 앱을 호출할 때는 사용할 필요가 없습니다.

하지만 ACTION_GET_CONTENT만 사용해서는 안됩니다.

왜냐하면 startActivityForResult()를 호출하면 갤러리는 열리지만 사용자마자 다양한 갤러리 앱을 가지고 있을 수 있습니다.

사용자는 처음에 어떤 갤러리 앱을 열것인지 선택하고, 디폴트 값으로 설정할 것인지 선택할 수 있습니다. 만약 처음에 포토라는 앱을 선택하고 이후에 다른 갤러리 앱으로 바꾸고 싶다면 설정에 들어가 기본 앱 설정을 변경해야하는 번거로움이 있습니다.

이렇기 때문에, startActivity에 들어가는 intent를 createChooser를 이용하여 사용자에게 선택권을 주는 것이 좋습니다. 이 방법을 사용하면 최근 순으로 사진이 정렬되며, 필요시 메뉴에서 포토를 쓸 것인지, 갤러리를 쓸 것인지, 구글 드라이브에서 가져올 것인지에 대해 선택권을 주고 개발자는 그에 대한 Uri값을 얻어 Path로 변환, 추출하여 업로드 등 작업을 수행하면 됩니다.

참고 : https://g-y-e-o-m.tistory.com/107

profile
Android Developer, Department of Information and Communication Engineering, Inha University

0개의 댓글