我想只获取最近发布的最近通话记录,这意味着我上周只能打电话记录

时间:2016-10-13 09:00:31

标签: java android eclipse calllog

我想只获取最近的通话记录而不是整数,这意味着我上周只能打电话记录

这是我写的代码:

private void getcalldetails() {
    Cursor cr=managedQuery(CallLog.Calls.CONTENT_URI,null,null,null,null);
    while(cr.moveToNext()){ 
        String number=cr.getString(cr.getColumnIndex(CallLog.Calls.NUMBER));
        String calldate=cr.getString(cr.getColumnIndex(CallLog.Calls.DATE));
        String callduration=cr.getString(cr.getColumnIndex(CallLog.Calls.DURATION));
        Date callDayTime = new Date(Long.valueOf(calldate));

        recentslog.add(number+"\n"+callDayTime+" "+callduration);
    }
    Collections.reverse(recentslog);
    ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,recentslog);
    recentslist.setAdapter(adapter);
}

1 个答案:

答案 0 :(得分:0)

来自活动文档:

Cursor managedQuery (Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)

selection   String: SQL WHERE clause.
selectionArgs   String: The arguments to selection, if any ?s are pesent

所以,这样的事情应该有效:

Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_YEAR, -7);
Date weekBefore = calendar.getTime();

String selection = CallLog.Calls.DATE + ">?";
String [] selectionArgs = {String.valueOf(weekBefore.getTime())};
Cursor cr = managedQuery(CallLog.Calls.CONTENT_URI, null, selection, selectionArgs, null);