public class ContactInfoCache
负责通话界面信息展示
public static void populateCacheEntry(Context context, CallerInfo info, ContactCacheEntry cce,
查询完后会调populateCacheEntry
public static void populateCacheEntry(Context context, CallerInfo info, ContactCacheEntry cce,
int presentation, boolean isIncoming) {
Preconditions.checkNotNull(info);
String displayName = null;
String displayNumber = null;
String displayLocation = null;
String label = null;
boolean isSipCall = false;
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
if (cce.namePrimary != null) {
**android.provider.Settings.System.putString(context.getContentResolver(),"number",cce.number);
android.provider.Settings.System.putString(context.getContentResolver(),"namePrimary",cce.namePrimary);**
}
}
}).start();
存储查询的名称和号码
通话记录 设置数据
public class CallLogAdapter extends GroupingListAdapter
protected void bindCallLogListViewHolder(ViewHolder viewHolder, int position) {
Cursor c = (Cursor) getItem(position);
if (c == null) {
return;
}
if(TextUtils.isEmpty(details.namePrimary)){
String callNumber = android.provider.Settings.System.getString(mContext.getContentResolver(),"number");
String callNamePrimary = android.provider.Settings.System.getString(mContext.getContentResolver(),"namePrimary");
if (callNumber.equals(number) && !TextUtils.isEmpty(callNamePrimary)) {
details.namePrimary = callNamePrimary;
}
}
进行赋值 这样就能保证 通话界面 和 通话记录 数据一致
http://blog.csdn.net/engineer_james/article/details/78358272
需要了解源码流程 请看上面文档