I am trying to make a VoIP application and I wanted to know if it is possible to do the following with the Call Logs content provider -
I want to add new Call L
From a standard SDK application, you cannot directly extend or modify the CallLog
database or content provider. For an SDK-based VOIP application, you should maintain your own call log.
If you are writing your own firmware for your own device, I am sure there are ways you can modify the call log database.
Regarding the first question, you can use this code to add new records to the existing Call logs content provider:
public static void insertPlaceholderCall(ContentResolver contentResolver, 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, "");
values.put(CallLog.Calls.CACHED_NUMBER_TYPE, 0);
values.put(CallLog.Calls.CACHED_NUMBER_LABEL, "");
Log.d(TAG, "Inserting call log placeholder for " + number);
contentResolver.insert(CallLog.Calls.CONTENT_URI, values);
}
(Code taken from Google Voice Callback for Android)
Remember to add the permissions in the Manifest
<uses-permission
android:name="android.permission.READ_CONTACTS"></uses-permission>
<uses-permission
android:name="android.permission.WRITE_CONTACTS"></uses-permission>
Regarding the customization of the call logs database, I do not think is possible.