앞서 포스팅에 이어서 이번에는 갤러리 접근시 클릭없이 접근하는 방법을 알려드리겠습니다. 대부분의 예쩨나 포스팅에서 갤러리 접근 방법은 많지만 클릭 시 접근뿐입니다. 이번에는 내가 자동으로 접근해서 사진을 가져오겠다라는 경우가 생길 경우 필요한 방법입니다.
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;
}
- 위 코드경우 사진 5장을 최신 순으로 정렬해서 가져왔다.
- 단순하게 생각해보면 클릭 없이 가져오기 위해선 Intet를 하지않고 가져오면 된다. 첨엔 Android를 정확히 이해하지 못해서 무조건 Intent를 해서 가져와야 하는 줄 알고 해맸던 기억이 난다. [jekyll-gh]: https://github.com/quarl894