-2

I want to delete a particular entry from call log only once..

getActivity().getContentResolver().delete(calluri, queryString, null);

The above code delete all the entries from call log

Oscar Tang
  • 201
  • 1
  • 8
Binod Singh
  • 682
  • 4
  • 11
  • 22

2 Answers2

2

try do delete call log by call id. use below code

int res = Call_logs.this.getContentResolver().delete(android.provider.CallLog.Calls.CONTENT_URI,"_ID = "+ calls_id_list.get(i),null);
        if (res == 1) {
            // Log delete

        } else {
            // Log not Delete

        }

to delete all call log:

Uri uri = Uri.parse("content://call_log/calls");

int d  = getContentResolver().delete(uri, null, null);
Dhaval Parmar
  • 18,812
  • 8
  • 82
  • 177
  • Thanks and to get call list we can use String[] strFields = { android.provider.CallLog.Calls.NUMBER, android.provider.CallLog.Calls._ID, android.provider.CallLog.Calls.TYPE, android.provider.CallLog.Calls.CACHED_NAME, android.provider.CallLog.Calls.CACHED_NUMBER_TYPE }; String strOrder = android.provider.CallLog.Calls.DATE + " DESC"; Cursor mCallCursor = mainCntx.getContentResolver().query(android.provider.CallLog.Calls.CONTENT_URI, strFields, null, null, strOrder); – Binod Singh May 27 '13 at 09:15
0

STEP 1: Make sure that you have following permission in manifast.xml:

<uses-permission android:name="android.permission.READ_CONTACTS" /> 
<uses-permission android:name="android.permission.WRITE_CONTACTS" />

STEP 2: And for deleting Call logs for particular number:

public void deleteCallLogByPhoneNumber(String number) {   

    String queryString="NUMBER="+number; 
    this.getContentResolver().delete(CallLog.Calls.CONTENT_URI,queryString,null);

}  
jazzbpn
  • 6,441
  • 16
  • 63
  • 99