Search code examples
androidcalllog

How to access MISSED_CALL Log in Android


I am developing an app in which i want to access MISSED_CALL log. Using below code....

private Cursor getItemsToSync() {
G = "Log method accessing";
ContentResolver r = getContentResolver();

String selections = String.format("%s > ?", CallLog.Calls.DATE,CallLog.Calls.MISSED_TYPE);
String[] selectionArgs = new String[] { String.valueOf(getMaxSyncedDate())};
String sortOrder = SmsConsts.DATE + " LIMIT " + PrefStore.getMaxItemsPerSync(this);
N = CallLog.Calls.CACHED_NAME;
return r.query(Uri.parse("content://call_log/calls"), null,selections,selectionArgs, sortOrder);}

its provide All Call Log. Please suggest me how to get only MISSED_CALL Call log. Thanks in advance


Solution

  • String[] strFields = {android.provider.CallLog.Calls.CACHED_NAME, android.provider.CallLog.Calls.NUMBER,android.provider.CallLog.Calls.DATE, android.provider.CallLog.Calls.TYPE
        };
        String strOrder = android.provider.CallLog.Calls.DATE + " DESC";
    
        Cursor mCallCursor = getContentResolver().query(android.provider.CallLog.Calls.CONTENT_URI,strFields, null, null, strOrder);
    
        if (mCallCursor.moveToFirst()) {
    
            do {
    
                boolean missed = mCallCursor.getInt(mCallCursor.getColumnIndex(CallLog.Calls.TYPE)) == CallLog.Calls.MISSED_TYPE;
    
                if (missed) {
    
                    String name = mCallCursor.getString(mCallCursor
                            .getColumnIndex(CallLog.Calls.CACHED_NAME));
    
                    String number = mCallCursor.getString(mCallCursor
                            .getColumnIndex(CallLog.Calls.NUMBER));
    Log.d("PhoneLog", "You have a missed call from " + name + " on " + number // + " at " + time); }
    
            } while (mCallCursor.moveToNext());
    
        }