我的目标是从通话记录中收集所有未知的电话号码。这可以通过以下代码实现:
private static final String[] CALLOG_PROJECTION = {CallLog.Calls._ID,
CallLog.Calls.CACHED_NAME, CallLog.Calls.NUMBER};
private static final String CALLOG_WHERE = CallLog.Calls.CACHED_NAME + " is null";
Cursor c = getContentResolver().query(CallLog.Calls.CONTENT_URI, CALLOG_PROJECTION,
CALLOG_WHERE, null, CallLog.Calls.DATE + " DESC");
这很好用,但是在我从未知号码创建联系人后,查询结果仍然包含未知号码。
如果我打开通话记录活动窗口,我可以在几秒钟内看到号码更改为联系人姓名。因此,活动会刷新 CACHED_NAME 列。
我的问题是,我如何以编程方式刷新(实现)呼叫日志?