一种移动终端及其电话簿的排序方法和装置 【技术领域】
本发明属于移动终端技术领域, 具体涉及一种移动终端及其电话薄的排序方法和装置。 背景技术 随着移动终端技术的不断发展, 用户对移动终端功能的要求也越来越高。
现今电话薄 (PHONEBOOK) 已经成为手机当中日常运用最多的功能。随着手机的存 储空间越来越大, 可存储的联系人的条目也越来越多。 虽然存储的联系人很多, 但是大多数 人经常使用的联系人往往却只有几十个, 十几个甚至是几个。
现有的电话薄联系人的排序方式基本是按照联系人的拼音或者是字母的 UNICODE 码的方式排序的, 这就不太符合我们往往只需要使用其中少数的一部分联系人信息的使用 习惯。
如何使得用户能够快速的查找到经常使用的联系人, 提高使用效率, 增加移动终 端的人性化, 是移动终端技术领域研究的方向之一。
发明内容 本发明的目的在于提供一种移动终端电话薄的排序方法, 旨在使得用户能够快速 的查找到经常使用的联系人, 提高使用效率, 增加移动终端的人性化。
本发明实施例是这样实现的, 一种移动终端电话薄的排序方法, 所述方法包括以 下步骤 :
在移动终端使用联系人进行通讯时, 获取该联系人标识 ;
在移动终端使用该联系人进行的通讯结束后, 根据该联系人标识更新该联系人的 使用次数以及本次通讯发生的时间 ;
根据更新后的使用次数以及通讯发生的时间对电话薄中的联系人进行排序, 其 中, 使用次数多、 以及最后一次通讯发生的时间较当前时间近的联系人优先显示。
本发明实施例的另一目的在于提供一种移动终端电话薄的排序装置, 所述装置包 括:
联系人标识获取模块, 用于在移动终端使用联系人进行通讯时, 获取该联系人标 识;
更新模块, 用于在移动终端使用该联系人进行的通讯结束后, 根据该联系人标识 更新该联系人的使用次数以及本次通讯发生的时间 ;
排序模块, 用于根据更新后的使用次数以及通讯发生的时间对电话薄中的联系人 进行排序, 其中, 使用次数多、 以及最后一次通讯发生的时间较当前时间近的联系人优先显 示。
本发明实施例的还一目的在于提供一种移动终端, 所述终端包括本发明实施例提 供的电话薄的排序装置。
本发明实施例中, 用户在使用联系人信息进行通讯后, 移动终端更新该联系人的 使用次数以及最近通讯的发生时间, 并对更新后电话薄中的联系人信息重新进行排序, 使 得用户能够快速的查找到经常使用的联系人, 提高了移动终端的使用效率, 增加了移动终 端的人性化, 利于移动终端的摊广。 附图说明
图 1 为本发明实施例提供的移动终端电话薄的排序方法的流程图 ;
图 2A-2B 为本发明实施例提供的对联系人进行排序的示意图 ;
图 3 为本发明实施例提供的移动终端电话薄的排序装置的结构图。 具体实施方式
为了使本发明的目的、 技术方案及优点更加清楚明白, 以下结合附图及实施例, 对 本发明进行进一步详细说明。 应当理解, 此处所描述的具体实施例仅用以解释本发明, 并不 用于限定本发明。
图 1 示出了本发明实施例提供的移动终端电话薄的排序方法的流程。 在步骤 S101 中, 在移动终端使用联系人进行通讯时, 获取该联系人标识 ;
优选的, 移动终端使用联系人进行通讯, 包括接听和拨打电话、 收发短信以及收发 Email, 当然也可以有其他的通讯方式, 此处不一一列举。
其中, 所述联系人标识为所述联系人在电话薄中的物理存储位位置。
在步骤 S102 中, 在移动终端使用该联系人进行的通讯结束后, 根据该联系人标识 更新该联系人的使用次数以及本次通讯发生的时间 ;
在步骤 S103 中, 根据更新后的使用次数以及通讯发生的时间对电话薄中的联系 人进行排序, 其中, 使用次数多、 以及最后一次通讯发生的时间较当前时间近的联系人优先 显示。
其中, 在对联系人进行排序时, 首先按照使用次数对联系人进行排序, 若使用次数 相同, 则按照最后一次通讯发生的时间进行排序。
譬如, 分别电话、 短信以及 Email 为例说明本发明 :
A、 电话 :
1)、 有联系人来电时, 收到来电信号的同时会从网络信令中得到来电的号码 ;
2)、 通过接口函数 mmi_phb_search_by_number()( 该函数在下文详细介绍 ), 通过 电话号码查找电话薄中是否有该联系人 ; 如果有, 该接口会返回该联系人标识, 即物理存储 位位置 ;
3)、 通过该唯一联系人标识, 向电话薄读取联系人的信息, 譬如姓名 ;
4)、 来电结束后, 通过联系人标识来调用电话薄接口函数 mmi_phb_update_time_ info(), 更新电话使用次数以及使用时间 ;
5)、 电话薄调用函数 mmi_phb_adjust_storeindex_by_timeinfo(), 更新联系人的 排列顺序。
B、 短信 / 彩信 :
1)、 当有联系人发来短信 / 彩信时, 从网络信令中得到来电的号码 ;
2)、 通过接口函数 mmi_phb_search_by_number(), 通过电话号码查找电话薄中是 否有该联系人 ; 如果有, 该接口会返回该联系人标识, 即物理存储位位置 ;
3)、 通过联系人标识, 向电话薄读取联系人的信息, 譬如姓名 ;
4)、 通过联系人标识来调用电话薄接口函数 mmi_phb_update_time_info(), 更新 短信 / 彩信使用次数以及使用时间 ;
5)、 电话薄调用函数 mmi_phb_adjust_storeindex_by_timeinfo() 更新联系人的 排列顺序。
C、 邮件 :
1)、 当用户需要发送 Email 时, 编写完 Email, 输入 Email 地址发送 ;
2)、 Email 通过接口函数 mmi_phb_search_by_email(), 通过 Email 地址查找电话 薄中是否有该联系人 ; 如果有, 该接口会返回该联系人标识, 即物理存储位位置 ;
3)、 Email 再通过该联系人标识, 向电话薄读取联系人的信息, 譬如姓名 ;
4)、 Email 通 过 联 系 人 标 识 来 调 用 电 话 薄 接 口 函 数 mmi_phb_update_time_ info(), 更新 Email 使用次数以及使用时间 ;
5)、 电话薄调用函数 mmi_phb_adjust_storeindex_by_timeinfo(), 更新联系人的 排列顺序。
本发明实施例中的主要处理函数介绍如下 :
1)、 S16mmi_phb_search_by_number(U8*number) ;
功能 : 该接口函数主要是通过电话号码查询电话薄中是否有该联系人含有该号 码;
输入 : U8*number, 要查询的号码 ;
返回值 : 如果有返回该联系人标识 ; 如果没有则返回 -1 ;
实现 : 该函数主要是通过查询一个包含有所有联系人号码的数组, 如果号码匹配 则返回对应号码的联系人标识 ; 这个包含有所有联系人号码的数组是在开机时初始化的, 同时, 在添加、 编辑删除联系人时进行更新 ;
2)、 S16mmi_phb_search_by_email(U8*Emailstr) ;
功能 : 该 接 口 函 数 主 要 是 通 过 Email 查 询 电 话 薄 中 是 否 有 该 联 系 人 含 有 该 Email ;
输入 : U8*Emailstr, 要查询的 Email 地址 ;
返回值 : 如果有返回该联系人标识 ; 如果没有则返回 -1 ;
实现 : 该函数主要是通过查询一个包含有所有联系人 Email 地址的数组, 如果 Email 匹配则返回对应的联系人标识 ; 这个包含有所有联系人 Email 的数组是在开机时初 始化的, 同时, 在添加, 编辑、 删除联系人时进行更新 ;
3)、 S16mmi_phb_update_time_info(U16store_index) ;
功能 : 该接口函数主要是其他模块更新电话薄联系人的信息使用情况 ;
输入 : U16store_index, 联系人标识, 即物理存储位置 ;
返回值 : 返回 0, 表示更新成功 ; 返回 -1, 表示更新失败 ;
实现 : 该函数首先通过 store_index 查询数组 mmi_phb_time_info[] 找到对应的 联系人实体, 再将该实体中的使用次数 count[3] 以及使用时间 usedtime 更新 ;4)、 S16mmi_phb_adjust_storeindex_by_timeinfo(U16store_index) ;
功能 : 该接口函数主要是在更新了联系人的使用信息后来更新该联系人在电话薄 列表中的顺序 ;
输入 : U16store_index, 联系人标识, 即物理存储位置 ;
返回值 : 返回 0, 表示更新成功 ; 返回 -1, 表示更新失败 ;
实现 : 将更新后的联系人, 也就是联系人标识是 store_index, 称为当前联系人 ;
该函数首先通过 store_index 查询数组 g_phb_name_index[], 找到当前联系人的 在列表中的逻辑位置, 也就是当前联系人标识 (store_index) 在数组 g_phb_name_index[] 中的位置 ; 如果找到了这个位置, 记为 tmp_index, 也就是 g_phb_name_index[tmp_index] = store_index ; 如果没有找到, 说明输入的 store_index 参数有错, 返回 -1 ;
再由当前的位置 tmp_index 向前与 g_phb_name_index[tmp_index] 前面的联系人 一一比较。
首先比较使用次数, 使用次数可以通过 mmi_phb_time_info[] 获得, mmi_phb_ time_info[store_index] 记录的就是要当前的联系人的使用信息 ;
如果前面的联系人使用的次数比当前的联系人的使用次数多, 则停止比较, 说明 前面的联系人拨打的次数比当前联系人更新后还要多, 当前联系人的只要插入该联系人后 一个位置即可 ; 如果前面的联系人使用的次数比当前的联系人的使用次数少, 则继续向前比较, 当所有的 tmp_index 之前的联系人都比当前联系人 (store_index) 的使用次数少的话, 就 将当前的联系人插在列表的第一位, 也就是 g_phb_name_index[0] 的位置 ;
如果前面的联系人与当前联系人的使用次数相同, 则再比较两者的最近使用时 间, 如果使用时间比当前的新, 则停止比较, 当前联系人就需要插入该联系人的后一个位 置; 如果使用时间当前的联系人比较新, 则继续向前比较, 如果所有的联系人的次数都相 同, 但时间比当前联系人老, 将当前的联系人插在第一位, 也就是 g_phb_name_index[0] 的 位置。
本发明实施例的主要数据结构为 :
1)typedef struct{S16store_index ;
Uint16 count[3] ;
MYTIME usedtime ; }
mmi_phb_time_struct ;
mmi_phb_time_struct mmi_phb_time_info[MAX_PB_ENTRYS] ;
该结构体主要是用来描述每一联系人的信息使用次数以及最后使用时间, 每一个 联系人对应于一个该实体 ; 所以定义了一个该结构体数组 ; 该数组的下标表示该联系人标 识, 譬如 mmi_phb_time_info[2] 表示物理存储位置是 2 的联系人的对应实体。
其中各个变量的解释如下 :
a)、 U16 count[3] :
该数组是一个三维数组, 每一个联系人的结构中都有这样一个数组, 主要用来记 录每一个联系人电话, 短信, 邮件这三种信息的使用次数 ; 之所以用三个数字, 主要是来区 分各种使用方式的次数, 以便于将来可以作为功能的扩展 ; 当然, 主要是使用这三种使用方
式的次数总和作为比较的依据 ;
b)、 MYTIME usedtime :
该成员变量也是一个结构体, 该结构是一个时间的结构体变量, 包含 : 年、 月、 日、 时、 分、 妙, 也是每一个联系人的结构中都这样一个变量, 主要是用来记录该联系人信息最 后一次被使用的时间 ;
c)、 S16store_index :
该变量是表示该联系人标识 : 是该联系人在存储介质上的位置, 因为每一个联系 人的物理存储位置是唯一的, 所以该变量也用来作为联系人标识, 用以区分其他联系人。 当 需要查找某个联系人时, 只要找到该联系人标识就可以了。 同时, 可以通过该联系人标识得 到该联系人的姓名, 电话等信息 ;
2)、 U16g_phb_name_index[MAX_PHB_ENTRIES] :
该变量是一个全局数组, MAX_PHB_ENTRIES 是所有最大联系人的数量, 该数组主要 是用来储存联系人标识, 而该数组的次序正是联系人的逻辑顺序, 也就是在联系人显示列 表中的顺序 : 从 g_Phb_name_index[0] 到 g_phb_name_index[MAX_PHB_ENTRIES] ; 当需要更 新某个联系人的位置时, 只需要调整该联系人的物理位置在 g_phb_name_index[] 中的顺 序即可。 请参阅图 2A-2B, 该为本发明实施例对联系人进行排序的示意图, 其中, 图 2A 为当 前电话薄中的联系人列表 ; 图 2B 为拨打 “张飞” 的电话结束后的联系人的列表。
图 3 示出了本发明实施例提供的移动终端电话薄的排序装置的结构。
联系人标识获取模块 31, 用于在移动终端使用联系人进行通讯时, 获取该联系人 标识 ;
优选的, 移动终端使用联系人进行通讯, 包括接听和拨打电话、 收发短信以及收发 Email。
其中, 所述联系人标识为所述联系人在电话薄中的物理存储位位置。
更新模块 32, 用于在移动终端使用该联系人进行的通讯结束后, 根据该联系人标 识更新该联系人的使用次数以及本次通讯发生的时间 ;
排序模块 33, 用于根据更新后的使用次数以及通讯发生的时间对电话薄中的联系 人进行排序, 其中, 使用次数多、 以及最后一次通讯发生的时间较当前时间近的联系人优先 显示。
所述排序模块 33 在对联系人进行排序时, 首先按照使用次数对联系人进行排序, 若使用次数相同, 则按照最后一次通讯发生的时间进行排序。
本发明实施例还提供一种移动终端, 所述终端包括本发明实施例提供的电话薄的 排序装置, 鉴于该装置在上文已有详细的描述, 此处不再赘述。
本发明实施例中, 用户在使用联系人信息进行通讯后, 移动终端更新该联系人的 使用次数以及最近通讯的发生时间, 并对更新后电话薄中的联系人信息重新进行排序, 使 得用户能够快速的查找到经常使用的联系人, 提高了移动终端的使用效率, 增加了移动终 端的人性化, 利于移动终端的推广。
应当理解的是, 对本领域普通技术人员来说, 可以根据上述说明加以改进或变换, 而这些改进和变换都应属于本发明所附权利要求的保护范围。