2011-11-03 6 views
1

CallLog.Calls 콘텐츠 공급자에게 통화 정보를 쿼리하고 있습니다. 이런 종류의 일을합니다.CallLog.Calls를 현재 날짜로 쿼리

이렇게하면 모든 통화 기록을 얻을 수 있습니다. 하지만 현재 날짜로 전화를 걸려면 현재 날짜로 쿼리하고 싶습니다. 어떻게 접근해야합니까?

+1

을 나는이 [여기] (http://stackoverflow.com/questions/5516423/calllog-calls-query-by-date) 응답 한 것으로 판단 – Andrei

답변

4

이 시도 :

//With this method you will get the timestamp of today at midnight 
public long getTodayTimestamp(){ 
    Calendar c1 = Calendar.getInstance(); 
    c1.setTime(new Date()); 

    Calendar c2 = Calendar.getInstance(); 
    c2.set(Calendar.YEAR, c1.get(Calendar.YEAR)); 
    c2.set(Calendar.MONTH, c1.get(Calendar.MONTH)); 
    c2.set(Calendar.DAY_OF_MONTH, c1.get(Calendar.DAY_OF_MONTH)); 
    c2.set(Calendar.HOUR_OF_DAY, 0); 
    c2.set(Calendar.MINUTE, 0); 
    c2.set(Calendar.SECOND, 0); 

    return c2.getTimeInMillis(); 
} 

String timestap = String.valueOf(getTodayTimestamp()); 

Cursor managedCursor = cr.query(CallLog.Calls.CONTENT_URI, CallLog.Calls.DATE + ">= ?", new String[]{timestamp}, null); 
+0

나는이 솔루션을 시도 그것은 작동하지만 쿼리는 다음과 같아야합니다. managedCursor = cr.query (CallLog.Calls.CONTENT_URI, null, CallLog.Calls.DATE + "> =?", new String [] {timestamp}, null); – ASH

+0

죄송합니다. 코드를 작성했지만 허용되지 않은 매개 변수가 있으므로 테스트하지 않았습니다. – rciovati

+0

또한 시간 형식은 c2.set (Calendar.HOUR_OF_DAY, 0) 형식이어야합니다. 24 시간 형식을 지원합니다. – ASH

관련 문제