Android 클릭 없이 갤러리 접근

앞서 포스팅에 이어서 이번에는 갤러리 접근시 클릭없이 접근하는 방법을 알려드리겠습니다. 대부분의 예쩨나 포스팅에서 갤러리 접근 방법은 많지만 클릭 시 접근뿐입니다. 이번에는 내가 자동으로 접근해서 사진을 가져오겠다라는 경우가 생길 경우 필요한 방법입니다.

1, 먼저 Mainfest에서 permission을 줘야 합니다.

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

2. Intent로 접근을 하지 않고 바로 Cusor를 통해 갤러리에 접근한다.
public void getImageNameToUri() {
        String[] proj = { MediaStore.Images.Media.DATA };
        //사진 최신순으로 정렬해서 가져오기
        Cursor cursor = getApplicationContext().getContentResolver()
                .query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, proj, null, null, MediaStore.Images.Media.DATE_TAKEN + " DESC");
        int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        cursor.moveToFirst();
        Log.e("Camera_test2", " " +cursor.getString(column_index));
        for(int i=0; i<5; i++){
            pic_path.add(cursor.getString(column_index));
            cursor.moveToNext(); //다음 사진으로
        }
        String imgPath = cursor.getString(column_index);
        //String imgName = imgPath.substring(imgPath.lastIndexOf("/")+1);
        Log.e("Camera_test", " " + imgPath);
//        return imgPath;
    }
  1. 위 코드경우 사진 5장을 최신 순으로 정렬해서 가져왔다.
  2. 단순하게 생각해보면 클릭 없이 가져오기 위해선 Intet를 하지않고 가져오면 된다. 첨엔 Android를 정확히 이해하지 못해서 무조건 Intent를 해서 가져와야 하는 줄 알고 해맸던 기억이 난다. [jekyll-gh]: https://github.com/quarl894