CallLog 를 삭제하고 싶을때 number 기준으로 삭제해 버리면 최근기록중에 number가 포함된 기록은 다 사라져 버립니다. Calls.ID를 이용해서 삭제해야 선택한 CallLog만 삭제됩니다.
---------------------------------------------------------------------------------------------------
ArrayList<RecentCalllog> reList = new ArrayList<RecentCalllog>();//폰내장 최근 통화 목록
private void callLog() { // RecentCalllog클래스 하나 만든다음 최근전화기록 얻어와서 arraylist add시켜줍니다
Cursor curCallLog = getCallHistoryCursor(this);
int callcount=0;
if (curCallLog.moveToFirst() && curCallLog.getCount() > 0) {
while (curCallLog.isAfterLast() == false) {
String callIdx = curCallLog.getString(curCallLog .getColumnIndex(CallLog.Calls._ID));
String num = curCallLog.getString(curCallLog .getColumnIndex(CallLog.Calls.NUMBER));
String date = timeToString(curCallLog.getLong(curCallLog .getColumnIndex(CallLog.Calls.DATE)));
String calltype=null;
if (curCallLog.getString(curCallLog
.getColumnIndex(CallLog.Calls.TYPE)).equals(MESSAGE_TYPE_INBOX)){
calltype = "수신";
}
else if (curCallLog.getString(curCallLog
.getColumnIndex(CallLog.Calls.TYPE)).equals(MESSAGE_TYPE_SENT)){
calltype = "발신";
}
String callDuration = curCallLog.getString(curCallLog.getColumnIndex(CallLog.Calls.DURATION));
reList.add(new RecentCalllog ( callIdx , num , date , calltype , callDuration));
curCallLog.moveToNext();
callcount++;
}
}
}
final static private String[] CALL_PROJECTION = { CallLog.Calls.TYPE,
CallLog.Calls.CACHED_NAME, CallLog.Calls.NUMBER, CallLog.Calls._ID,
CallLog.Calls.DATE, CallLog.Calls.DURATION };
private Cursor getCallHistoryCursor(Context context) {//calllog 커서 얻어오기
Cursor cursor = context.getContentResolver().query(
CallLog.Calls.CONTENT_URI, CALL_PROJECTION,
null, null, CallLog.Calls.DEFAULT_SORT_ORDER);
return cursor;
}
private String timeToString(Long time) {//통화한 시간 시:분으로 리턴
SimpleDateFormat simpleFormat = new SimpleDateFormat("HH:mm");
String date = simpleFormat.format(new Date(time));
return date;
}
private void deleteCalllog(String del_id){ //Calllog 삭제(del_id를 받아온 다음 쿼리를 날려서 삭제해준다)
String queryString = CallLog.Calls._ID+"=" + "'" + del_id + "'";
this.getApplicationContext().getContentResolver().delete(CallLog.Calls.CONTENT_URI, queryString, null);
}
'안드로이드' 카테고리의 다른 글
카메라 호출 후 넘어오는 intent.getData()가 null 일때 해결법 (1) | 2012.09.26 |
---|---|
TextWatcher에서 초성검색하기 (2) | 2012.09.21 |
WebView 에서 이미지 여백 없이 나오게 하는 방법 (1) | 2012.09.21 |
blob 이미지 insert, select 방법 (0) | 2012.06.14 |
android:id (0) | 2012.05.23 |