通话记录分析 --- 界面

1,通话记录

在android 系统中,和通话记录相关的有4个界面,还有一些其他功能。

通话记录分析 --- 界面_第1张图片


通话记录分析 --- 界面_第2张图片

第一个界面是dialer启动之后的三个界面之一的通话记录,这三个界面分别是收藏的联系人/通话记录/所有联系人。是DialtactsActivity对应的Fragment为CallLogFragment,通过ListsFragment实现的, ListsFragment的getItem方法如下,

switch (getRtlPosition(position)) {
  case TAB_INDEX_SPEED_DIAL: //快速拨号界面
      mSpeedDialFragment = new SpeedDialFragment();
      return mSpeedDialFragment;
  case TAB_INDEX_RECENTS: //普通通话记录
      mRecentsFragment = new CallLogFragment(CallLogQueryHandler.CALL_TYPE_ALL,
     MAX_RECENTS_ENTRIES, System.currentTimeMillis() - OLDEST_RECENTS_DATE);
      return mRecentsFragment;
   case TAB_INDEX_ALL_CONTACTS://所有联系人界面
      mAllContactsFragment = new AllContactsFragment();
      return mAllContactsFragment;
   case TAB_INDEX_VOICEMAIL:// VOICEMAIL 界面
     mVoicemailFragment = new CallLogFragment(Calls.VOICEMAIL_TYPE);
      return mVoicemailFragment;
}

点击一个通话记录项,可以进入添加联系人界面,并且可以将当前的通话号码添加到联系人中,另外还可以给通话号码发送短信,还可以查看有关的通话详细信息。

第二个界面是CallLogActivity界面,不仅可以查看所有通话,还可以仅仅查看去电/来电/未接来电类型的通话记录;还可以进入通话记录查询界面和删除通话记录界面。

通话记录分析 --- 界面_第3张图片

CallLogActivity界面对应的Fragment为MsimCallLogFragment, CallLogActivity的内部类MsimViewPagerAdapter的getItem方法如下,

case TAB_INDEX_MSIM:
    mMSimCallsFragment = new MSimCallLogFragment();
    return mMSimCallsFragment;

第三个界面是通话记录查询界面,对应的Fragment为CallLogSearchFragment,可以根据通话记录的电话和姓名信息搜索通话记录;第四个界面是通话记录的删除界面,在这里可以删除通话记录,和其他联系人信息操作同在一个activity中,对应的activity为MultiPickContactActivity,在后面再详细论述。

通话记录分析 --- 界面_第4张图片

至此,对于数据库的增删改查方法,通话记录的信息不能修改,也不能随便插入,是通话结束后由系统生成的通话信息并插入数据库;插入过程前面已经论述过了。下面主要论述查询和删除过程,也就是上面的4个fragment详细实现过程。


Fragment和CallLogQueryHandler架构图如下,这一部分架构主要是Fragment发起异步查询数据库的过程。

通话记录分析 --- 界面_第5张图片

三种通话记录的查询方式不同,CallLogFragment一进入就查询所有通话记录;

MsimCallLogFragment可以查看四种方式,分别是所有通话记录,去电,来电以及未接通话记录,有一个选择的过程;

CallLogSearchFragment是以姓名和号码进行搜索,有一个输入的过程。

你可能感兴趣的:(---【contact分析】)