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

연락처 정보 (call log) 에 대한 질문입니다.

0 추천
call log 정보를 이용,

연락처를 불러올수 있는것은 알고있는데요 , (번호/이름/총 통화시간 등)

 

질문은,

 

연락처 정보들 중에서, 특정 번호 (예:홍길동)의 통화시간 (수신/발신) 정보를 가져올 수도 있나요?

 

 

혹시 안된다면,

 

미리 홍길동의 연락처를 DB에 저장 해두고, call log (통화내역) 중에서 홍길동의 번호와 통화를 했다면 (수신 or 발신)

그 각각의 통화 시간을 더하는 식으로는 구현이 가능한가요?
발삼체다 (650 포인트) 님이 2015년 1월 27일 질문

1개의 답변

0 추천
String[] projection = { CallLog.Calls.CACHED_NAME, CallLog.Calls.NUMBER, CallLog.Calls.DATE };
String selection = CallLog.Calls.TYPE + " = ?";
String[] selectionArgs = { CallLog.Calls.MISSED_TYPE + "" }; // CallLog.Calls.INCOMING_TYPE, CallLog.Calls.OUTGOING_TYPE
Cursor cursor = _context.getContentResolver().query(CallLog.Calls.CONTENT_URI, projection, selection, selectionArgs,
      CallLog.Calls.DEFAULT_SORT_ORDER);
 
if (cursor == null || cursor.getCount() == 0)
   return;
 
cursor.moveToFirst();
 
while (!cursor.isAfterLast())
{
   String name = cursor.getString(cursor.getColumnIndex(CallLog.Calls.CACHED_NAME));
   String phone = cursor.getString(cursor.getColumnIndex(CallLog.Calls.NUMBER));
   long datetimeMillis = cursor.getLong(cursor.getColumnIndex(CallLog.Calls.DATE));
 
   // TODO
 
   cursor.moveToNext();
}
cursor.close();

 

call type으로 검색하는 예제인데, 저기에 call_type이 아니라 번호를 이용하면 될 겁니다 

쎄미 (162,410 포인트) 님이 2015년 1월 28일 답변
...