Question

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

Was it helpful?

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());

    }
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top