In a VoIP application that "catches" the system's outgoing calls, I also put information about the calls into the phone's call log. For a missed call the code is like below:
ContentValues values = new ContentValues();
values.put(CallLog.Calls.NUMBER, number);
values.put(CallLog.Calls.DATE, callTime);
values.put(CallLog.Calls.DURATION, duration);
values.put(CallLog.Calls.TYPE, CallLog.Calls.MISSED_TYPE);
values.put(CallLog.Calls.NEW, 1);
contentResolver.insert(CallLog.CONTENT_URI, values);
This makes the call end up nicely in the call log, but there is no notification showed by the system. Note that a notification about missed calls IS shown after rebooting the phone, but if the user is unaware of the missed call until a reboot, it is not much use.
I see the following options;
- I somehow tell the system about the newly missed call, and the system displays its own notification.
- I implement my own notification, that does not interfere with the one at reboot.
Anyone know of a way to do (1) above?