마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

MediaStore를 이용해서 쿼리로 데이터를 가져올때 이번달 데이터만 가져올수있나요?

0 추천
Cursor imageCursor = mContext.getContentResolver().query(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                proj, null, null, MediaStore.Images.Media.DATE_TAKEN + " DESC"
);

 

위에같이하면 DATE_TAKEN으로 정렬해서 가져오잖아요..

그렇게하면 전체데이터 다 읽어와서 너무오래걸리는데..

제가하고싶은건 이번달것만 읽어오는거 거든요..

하기는했는데..

저는 다읽어와서 SimpleDateFormat("yyyy-MM") 을 이용해서 이번달 비교해서 했거든요..

속도가 너무 안나와서 고심끝에 질문합니다.

DATE_TAKEN 필드값은 milliseconds로 되어있습니다...
Type: INTEGER

활강 (320 포인트) 님이 2013년 12월 23일 질문

2개의 답변

+1 추천
 
채택된 답변

where 조건으로 이번달 1일에 맞는 millsecond 를 계산하셔서 넣어주면 되겠네요.

Time t = new Time();

t.set(0, 0, 0, 1, 11, 2013);    //초, 분, 시간, 일, 월(0~11), 년도, 2013년 12월 1일로 셋팅

long start = t.toMills(true);

String where = MediaStore.Images.Media.DATE_TAKEN +" >= " + start;

원조안드로이드 (58,190 포인트) 님이 2013년 12월 23일 답변
활강님이 2013년 12월 24일 채택됨
감사합니다.  많은도움이 된듯^^
+1 추천
네, 가능합니다.

 

query 문에서 selection을 잘 활용하면 됩니다.

 

스피너에서 이번달과 지난달을 선택하면 해당달에 찍은 사진의 찍힌 날짜를 보여주는 예를 만들었습니다. 이번달에 찍은 사진만 있어서 지난달에 찍은 사진이 표시되는지는 테스트해보지 못했습니다. 혹시 오류나면 메일주세요 ^^

 

http://blog.naver.com/goodsogi/40203190213
방귀과장 (18,940 포인트) 님이 2013년 12월 23일 답변
감사합니다.  하고나서봤지만 제가한거랑 같군요..ㅎㅎ 많은 도움이되었습니다~
...