2012-01-09 4 views
2

연락처의 표시 이름을 기반으로 특정 연락처에서 전화 목록을 검색하려면 CallLog.Calls 공급자를 쿼리합니다. 특히 다음 쿼리를 사용합니다.Android : 특정 연락처에서 통화 기록 가져 오기

String selection = CallLog.Calls.CACHED_NAME + "= ?";  
String dispName = dataCollector.getDisplayName(); 
Cursor callCursor = 
    cr.query(callLogUri, callLogProjection, selection, 
       new String[] {dispName},CallLog.Calls.DATE + " DESC"); 

dataCollector 개체는 주어진 연락처 ID를 기반으로하는 쿼리의 정보를 저장하는 데 사용됩니다. 문제는이 코드가 주어진 연락처에 대해 하나의 호출 만 반환한다는 것입니다. 이유를 이해할 수 없습니다. 모든 단서?

답변

1
int i=0; 
while(cursor.moveToNext()) 
{  
Sring id = cursor.getString(cursor.getColumnIndex(CallLog.Calls._ID)); 
numbersTemp[i]=cursor.getString(cursor.getColumnIndex(CallLog.Calls.NUMBER)); 
valuesTemp[i]=cursor.getString(cursor.getColumnIndex(CallLog.Calls.CACHED_NAME)); 
i++; 
} 
+0

나는 지금 작동한다고 믿습니다. –