Как получить журнал вызовов с определенной даты в android

В моем приложении я получаю весь журнал вызовов, используя этот код. Я возвращаю мне весь журнал вызовов на моем телефоне Android.

public class CallLogHelper { public static Cursor getAllCallLogs(ContentResolver cr) { // reading all data in descending order according to DATE String strOrder = android.provider.CallLog.Calls.DATE + " DESC"; Uri callUri = Uri.parse("content://call_log/calls"); Cursor curCallLogs = cr.query(callUri, null, null, null, strOrder); return curCallLogs; } public static void insertPlaceholderCall(ContentResolver contentResolver, String name, String number) { ContentValues values = new ContentValues(); values.put(CallLog.Calls.NUMBER, number); values.put(CallLog.Calls.DATE, System.currentTimeMillis()); values.put(CallLog.Calls.DURATION, 0); values.put(CallLog.Calls.TYPE, CallLog.Calls.OUTGOING_TYPE); values.put(CallLog.Calls.NEW, 1); values.put(CallLog.Calls.CACHED_NAME, name); values.put(CallLog.Calls.CACHED_NUMBER_TYPE, 0); values.put(CallLog.Calls.CACHED_NUMBER_LABEL, ""); Log.d("Call Log", "Inserting call log placeholder for " + number); contentResolver.insert(CallLog.Calls.CONTENT_URI, values); } } 

Но моя проблема в том, что я хочу получить журнал вызовов с определенной даты, а не на весь журнал вызовов. Я не знаю, как использовать запрос, чтобы получить журнал вызовов с определенной даты. Помогите мне Спасибо

  String[] strFields = { android.provider.CallLog.Calls.NUMBER, android.provider.CallLog.Calls.TYPE, android.provider.CallLog.Calls.CACHED_NAME, android.provider.CallLog.Calls.DATE, android.provider.CallLog.Calls.DURATION, }; // Defines a string to contain the selection clause String mSelectionClause = android.provider.CallLog.Calls.DATE+ " >= ?"; // Initializes an array to contain selection arguments String[] mSelectionArgs = { createDate(2013,1,1).toString() }; Cursor mCallCursor = currentContext.getContentResolver().query( android.provider.CallLog.Calls.CONTENT_URI, strFields, mSelectionClause, mSelectionArgs, null ); return mCallCursor; public static Long createDate(int year, int month, int day) { Calendar calendar = Calendar.getInstance(); calendar.set(year, month, day); return calendar.getTimeInMillis(); } 
 StringBuffer sb = new StringBuffer(); String strOrder = android.provider.CallLog.Calls.DATE + " DESC"; Uri callUri = Uri.parse("content://call_log/calls"); Calendar calendar = Calendar.getInstance(); calendar.set(2014, Calendar.MAY, 25); String fromDate = String.valueOf(calendar.getTimeInMillis()); calendar.set(2014, Calendar.MAY, 30); String toDate = String.valueOf(calendar.getTimeInMillis()); String[] whereValue = {fromDate,toDate}; Cursor cur = cr.query(callUri, null, android.provider.CallLog.Calls.DATE+" BETWEEN ? AND ?", whereValue, strOrder); //Cursor cur = cr.query(callUri, null, android.provider.CallLog.Calls.DATE+" >= ?", whereValue, strOrder); // loop through cursor while (cur.moveToNext()) { String callNumber = cur.getString(cur .getColumnIndex(android.provider.CallLog.Calls.NUMBER)); String callName = cur .getString(cur .getColumnIndex(android.provider.CallLog.Calls.CACHED_NAME)); String callDate = cur.getString(cur .getColumnIndex(android.provider.CallLog.Calls.DATE)); SimpleDateFormat formatter = new SimpleDateFormat( "dd-MMM-yyyy HH:mm"); String dateString = formatter.format(new Date(Long .parseLong(callDate))); String callType = cur.getString(cur .getColumnIndex(android.provider.CallLog.Calls.TYPE)); String dir=null; int dircode = Integer.parseInt(callType); switch (dircode) { case CallLog.Calls.OUTGOING_TYPE: dir = "OUTGOING"; break; case CallLog.Calls.INCOMING_TYPE: dir = "INCOMING"; break; case CallLog.Calls.MISSED_TYPE: dir = "MISSED"; break; } String isCallNew = cur.getString(cur .getColumnIndex(android.provider.CallLog.Calls.NEW)); String duration = cur.getString(cur .getColumnIndex(android.provider.CallLog.Calls.DURATION)); sb.append("\nPhone Number:--- " + callNumber + " \nName:--- "+ callName +" \nCall Type dir:--- " + dir + " \nCall Date:--- " + dateString + " \n duration in sec :--- " + duration); sb.append("\n----------------------------------"); } 

Возвращенный журнал звонков находится между 25/05/2014 и 30/05/2014. Возвращаемое значение сохраняется в переменной sb, вы можете установить это значение в TextView для тестирования