具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例一提供的电话号码存储方法的流程图,如图1所示,该电话号码存储方法可以包括以下步骤:
步骤101、接收联系人编辑指令,所述联系人编辑指令携带联系人姓名和联系人电话号码;
步骤102、将所述联系人编辑指令携带的联系人电话号码或将所述联系人编辑指令携带的联系人姓名和联系人电话号码保存到所需的用户识别模块卡上空闲的缩位拨号记录的对应字段中,并根据所述缩位拨号号码文件的配置参数字段和扩展记录标识字段,建立所述联系人姓名所对应的联系人电话号码的链式索引关系,所述配置参数字段用于保存所述联系人电话号码的号码顺序,所述扩展记录标识字段用于保存与所述缩位拨号记录的后续缩位拨号记录的数组位置。
具体地,用户识别模块(SIM)卡中的联系人信息保存在SIM卡缩位拨号号码文件(EFADN)中,EFADN可记录200个联系人记录,每个联系人记录对应一个号码。本发明实施例在多个EFADN记录中增加索引,可以实现在SIM卡上一个联系人姓名对应多个号码的功能。如在SIM卡上新建联系人姓名为“张三”,联系人电话号码中手机号码为“18911111111”、家庭号码为“65423423”、办公室号码为“72367434”、传真号码为“67672343”,共4个电话号码,可以在SIM卡的200个EFADN缩位拨号记录中占用4个缩位拨号记录,保存“张三”的联系人信息。其中,如下表1为SIM卡EFADN中单个缩位拨号记录(可以简称EFADN记录)的结构。
表1EFADN记录的结构
其中,表1中的“Alpha Identifier”为联系人姓名字段,用于保存联系人姓名;“Dialling Number/SSC String”为联系人电话号码字段用于保存联系人电话号码;“Capability/Configuration Identifier”为配置参数字段,用于缩位拨号记录呼叫相关配置参数;“Extension1 RecordIdentifier”为扩展记录标识字段。此外,该缩位拨号记录中还可以包括:“Length of BCD number/SSC contents”用于表示电话号码的字数;“TONand NPI”用于表示联系人电话号码的类型如:家庭号码、手机号码、办公号码等。
如图2所示,为本发明实施例一中EFADN中的联系人数组结构的示意图,SIM卡的EFADN中的200个EFADN记录以数组方式进行排列。通常,EFADN中单个EFADN记录保存一个联系人的姓名和对应的联系人电话号码,仅使用了联系人姓名字段“Alpha Identifier”和联系人电话号码字段“Dialling Number/SSCString”。而本发明实施例中通过配置参数字段“Capability/ConfigurationIdentifier”和扩展记录标识字段“Extension1 Record Identifier”可以实现链式扩展,以支持一个联系人姓名对应显示多个联系人电话号码的功能。
其中,配置参数字段“Capability/Configuration Identifier”,用于保存号码顺序,用以表示该记录中的联系人电话号码是否是该联系人的第一个电话号码,字段定义可以为:“00”表示不是联系人中第一个电话号码,即非首号码;“01”表示是联系人中第一个电话号码,即首号码;“FF”表示未使用。
扩展记录标识字段“Extension1 Record Identifier”,用于保存与该缩位拨号记录的后续EFADN记录的数组位置,字段定义可以为:“FF”表示未使用;其他数值表示下一EFADN记录的数组位置(0-199)。
如果用户通过移动终端例如:手机选择在SIM卡上编辑(包括新建或修改)联系人信息,手机的用户界面(UI)上显示多个号码的编辑框,即手机号码、家庭号码、办公号码、传真号码等,手机在接收到联系人编辑指令后,可以查找该SIM卡的缩位拨号号码文件的缩位拨号记录中是否存在空闲的缩位拨号记录,如果存在,则执行步骤102,如果不存在,则可以发出SIM卡电话簿存储已满的相关提醒。
在步骤102中,将所述联系人保存到所需的用户识别模块卡上空闲的缩位拨号记录中具体可以包括以下操作:
将所述联系人电话号码保存到所需的用户识别模块卡上空闲的缩位拨号记录的联系人电话号码字段中;
根据所述联系人姓名对应的联系人电话号码的个数,按照存储顺序将所述联系人姓名所在的缩位拨号记录的配置参数字段确定为首号码、非首号码或未使用,将所述扩展记录标识字段确定为后续缩位拨号记录的数组位置或未使用。具体可以包括以下任一情况:
情况一、若所述联系人姓名对应的联系人电话号码个数为一个,则将所述空闲的缩位拨号记录的配置参数字段确定为未使用,将所述扩展记录标识字段确定为未使用;
情况二、若所述联系人姓名对应的联系人电话号码个数大于一个,则将所述联系人电话号码中第一个号码所在的缩位拨号记录的配置参数字段确定为首号码,扩展记录标识字段确定为所述第一个号码的下一个号码所在的缩位拨号记录的数组位置;并且将下一个号码及其后续号码所在的缩位拨号记录的配置参数字段确定为非首号码,扩展记录标识字段确定为各自后续号码所在的缩位拨号记录的数组位置;
例如:如果用户对于一个联系人姓名编辑了多个对应的联系人电话号码,则移动终端相应获取SIM卡上多个空闲的EFADN记录,其中,第一个号码(首号码)对应的EFADN记录中“Capability/Configuration Identifier”设置为“01”,“Extension1 Record Identifier”中保存下一号码(假设为第二号码)对应的EFADN记录的数组位置,建立链式关系。第二号码(非首号码)对应的EFADN记录中“Capability/Configuration Identifier”设置为“00”,将“Extension1 Record Identifier”中保存的下一号码(假设为第三号码)的数组位置,建立链式关系。并在所有的EFADN记录中将第一号码、第二号码、第三号码所对应的联系人姓名字段“Alpha Identifier”置为同一个联系人名称,用以兼容用该SIM卡在不支持多号码联系人的手机上使用,在普通手机上显示多个相同联系人姓名分别对应不同联系人电话号码的多个联系人记录。
此外,在步骤102中,将所述联系人保存到所述缩位拨号记录中还可以包括:将所述联系人姓名保存到所需的用户识别模块卡上空闲的缩位拨号记录的联系人姓名字段中的步骤,具体可以包括:
若所述用户识别模块卡上已存储的缩位拨号记录中不存在与所述联系人姓名重复的内容,则将所述联系人姓名保存到所述联系人电话号码的第一个号码对应的缩位拨号记录的联系人姓名字段中;或将所述联系人姓名保存到所述联系人电话号码对应的所有缩位拨号记录的联系人姓名字段中;或
若所述用户识别模块卡上已存储的缩位拨号记录中存在与所述联系人姓名重复的内容,则不存储所述联系人姓名,或将所述联系人姓名保存到所述联系人电话号码对应的缩位拨号记录中未存储所述联系人姓名的号码对应的联系人姓名字段中。
本实施例根据SIM卡的缩位拨号记录中的配置参数字段和扩展记录标识字段,可以建立联系人姓名所对应的联系人电话号码的链式索引关系,实现在SIM卡上为一个联系人姓名存储多个对应的联系人电话号码。
图3为本发明实施例二提供的电话号码读取方法的流程图,如图3所示,该种电话号码读取方法可以包括以下步骤:
步骤301、根据开机指令或读取指令,遍历缩位拨号号码文件的所有缩位拨号记录,所述缩位拨号号码文件的每条缩位拨号记录的联系人姓名字段用于保存联系人姓名,联系人电话号码字段用于保存联系人电话号码,配置参数字段用于保存所述联系人电话号码的号码顺序,扩展记录标识字段用于保存与所述缩位拨号记录的后续缩位拨号记录的数组位置;
步骤302、根据遍历到的当前缩位拨号记录中配置参数字段和扩展记录标识字段建立的联系人姓名所对应的联系人电话号码的链式索引关系,确定是否读取所述当前缩位拨号记录中的联系人姓名和联系人电话号码。
具体地,当前缩位拨号记录的格式和各个字段的含义可以参见实施例一中的表1及其相关描述,步骤302可以包括以下任一情况:
情况一、若所述当前缩位拨号记录中配置参数字段和扩展记录标识字段为未使用,则读取所述当前缩位拨号记录中的联系人姓名和联系人电话号码;
情况二、若所述当前缩位拨号记录中配置参数字段为首号码,则读取所述当前缩位拨号记录中的联系人姓名和联系人电话号码后,根据所述当前缩位拨号记录的扩展记录标识字段中的数组位置,读取所述数组位置对应的后续缩位拨号记录的联系人电话号码,并根据所述后续缩位拨号记录的扩展记录标识字段,确定是否继续读取;
其中,根据所述后续缩位拨号记录的扩展记录标识字段,可以确定是否继续读取,具体为:
若所述后续缩位拨号记录中扩展记录标识字段存在下一数组位置,则继续读取下一数组位置对应的后续缩位拨号记录的联系人电话号码;或
若所述后续缩位拨号记录的扩展记录标识字段中不存在下一数组位置,则停止读取所述当前缩位拨号记录。
情况三、若所述当前缩位拨号记录中配置参数字段为非首号码,则跳过所述当前缩位拨号记录。
在执行步骤302之后,无论读取还是跳过当前缩位拨号记录及其后续缩位拨号记录,都可以在结束后开始读取当前缩位拨号记录的下一缩位拨号记录,直至将用户识别模块卡的缩位拨号号码文件中的所有缩位拨号记录读取完毕。
如图4所示,为本发明实施例二提供的电话号码读取方法具体应用的流程图,以实施例一表1的参数定义为例,该电话号码读取方法包括以下步骤:
步骤401、移动终端例如:手机开机时可以产生开机指令,根据开机指令可以遍历SIM卡上的每个EFADN记录。也可以不在开机时遍历,而是在用户需要第一次读取电话簿时,移动终端根据读取指令遍历SIM卡上的每个EFADN记录。当然移动终端也可以在用户每次读取电话簿时,根据读取指令遍历SIM卡上的每个EFADN记录,不过一般遍历一次就可以将SIM卡上的每个EFADN记录读出,没有重复遍历的必要。
步骤402、根据EFADN记录的配置参数字段“Capability/ConfigurationIdentifier”的内容,选择执行步骤,如果“Capability/ConfigurationIdentifier”为“FF”,则执行步骤403,如果“Capability/ConfigurationIdentifier”为“01”执行步骤404,如果“Capability/ConfigurationIdentifier”为“00”则执行步骤405。该步骤402可以通过字符匹配后选择后续的执行步骤,也可以分为两个或多个判断步骤,例如:先判断“Capability/Configuration Identifier”是否为“01”,在不为“01”时再判断是否为“00”或“FF”等,从而完成后续步骤的选择。
步骤403、在某个EFADN记录的配置参数字段“Capability/ConfigurationIdentifier”为“FF”时,表示未使用,即该联系人只有一个电话号码,正常读取该EFADN记录后,再返回步骤401读取下一EFADN记录。
步骤404、在某个EFADN记录的配置参数字段“Capability/ConfigurationIdentifier”为“01”时,表示首号码,即该号码为一个多号码联系人中的第一个号码。此时,可以根据扩展记录标识字段“Extension1 RecordIdentifier”中保存的下一号码的数组位置,读取该下一号码的数组位置指向的EFADN记录,并根据该下一号码的“Extension1 Record Identifier”确定是否继续读取其后续号码所在的EFADN记录,直至某一后续EFADN记录的“Extension1 Record Identifier”为“FF”表示未使用,即没有后续号码,则可以停止对该联系人号码的读取。然后可以返回步骤401,读取该联系人的第一号码所在的EFADN记录的下一EFADN记录继续读取。
步骤405、在某个EFADN记录的配置参数字段“Capability/ConfigurationIdentifier”为“00”时,表示非首号码,即该EFADN记录为多号码联系人中的一个号码(但非第一个号码),可以直接跳过该EFADN记录,返回步骤401,读取下一EFADN记录。
按照以上方式,对所有EFADN记录完成遍历后,即读取到所有的SIM卡上联系人的电话号码。
进一步地,如果需要搜索用户识别模块卡的某一个联系人信息,则该电话号码读取方法还可以包括:
若接收到联系人搜索指令,则查找所述用户识别模块卡的是否存在与所述联系人搜索指令中的联系人姓名或联系人电话匹配的缩位拨号记录;
若存在,则根据匹配的缩位拨号记录的配置参数字段中保存的联系人电话号码的号码顺序,确定是否读取所述当前缩位拨号记录中的联系人姓名和联系人电话号码,若不存在,则可以结束搜索过程,或返回未搜索、搜索错误等表示搜索结果的提示。
本实施例移动终端可以根据SIM卡的缩位拨号记录中的配置参数字段和扩展记录标识字段建立的联系人姓名所对应的联系人电话号码的链式索引关系,可以确定如何读取当前缩位拨号记录中的联系人姓名和联系人电话号码,移动终端可以实现从SIM卡中读取一个联系人姓名对应的联系人电话号码。
图5为本发明实施例三提供的移动终端的结构示意图,如图5所示,该移动终端可以包括:
编辑指令接收模块11,用于接收联系人编辑指令,所述联系人编辑指令携带联系人姓名和联系人电话号码;
联系人保存模块13,用于将所述联系人编辑指令携带的联系人电话号码或将所述联系人编辑指令携带的联系人姓名和联系人电话号码保存到所需的用户识别模块卡上空闲的缩位拨号记录的对应字段中,并根据所述缩位拨号号码文件的配置参数字段和扩展记录标识字段,建立所述联系人姓名所对应的联系人电话号码的链式索引关系,所述配置参数字段用于保存所述联系人电话号码的号码顺序,所述扩展记录标识字段用于保存与所述缩位拨号记录的后续缩位拨号记录的数组位置。
具体地,缩位拨号记录的格式和各个字段的含义可以参见实施例一中的表1及其相关描述。若接收联系人编辑指令,移动终端的编辑指令接收模块11若接收联系人编辑指令,可以查找用户识别模块卡上的缩位拨号号码文件是否存在空闲的缩位拨号记录,如果存在,则联系人保存模块13可以将联系人编辑指令携带的联系人姓名和联系人电话号码保存到所需的用户识别模块卡上空闲的缩位拨号记录的对应字段中,并根据所述配置参数字段和扩展记录标识字段,建立所述联系人姓名所对应的联系人电话号码的链式索引关系;如果不存在,则可以提示用户识别模块卡存储已满。具体方法可以参见实施例一的相关描述。
本实施例移动终端的联系人保存模块根据SIM卡的缩位拨号记录中的配置参数字段和扩展记录标识字段,可以建立联系人姓名所对应的联系人电话号码的链式索引关系,实现在SIM卡上为一个联系人姓名存储多个对应的联系人电话号码。
图6为本发明实施例四提供的移动终端的结构示意图,如图6所示,在实施例四的基础上,该移动终端的联系人保存模块13可以包括:
电话号码保存子模块23,用于将所述联系人电话号码保存到所需的用户识别模块卡上空闲的缩位拨号记录的联系人电话号码字段中;
配置扩展子模块25,用于根据所述联系人姓名对应的联系人电话号码的个数,按照存储顺序将所述联系人姓名所在的缩位拨号记录的配置参数字段确定为首号码、非首号码或未使用,将所述扩展记录标识字段确定为后续缩位拨号记录的数组位置或未使用。
进一步地,配置扩展子模块25可以包括:第一配置扩展单元251和/或第二配置扩展单元253。
其中,第一配置扩展单元251,用于若所述联系人姓名对应的联系人电话号码个数为一个,则将所述空闲的缩位拨号记录的配置参数字段确定为未使用,将所述扩展记录标识字段确定为未使用;
第二配置扩展单元253,用于若所述联系人姓名对应的联系人电话号码个数大于一个,则将所述联系人电话号码中第一个号码所在的缩位拨号记录的配置参数字段确定为首号码,扩展记录标识字段确定为所述第一个号码的下一个号码所在的缩位拨号记录的数组位置;并且将下一个号码及其后续号码所在的缩位拨号记录的配置参数字段确定为非首号码,扩展记录标识字段确定为各自后续号码所在的缩位拨号记录的数组位置。
进一步地,联系人保存模块13还可以包括:姓名保存子模块21,用于将所述联系人姓名保存到所需的用户识别模块卡上空闲的缩位拨号记录的联系人姓名字段中;
姓名保存子模块21进一步可以包括:第一姓名保存单元211和/或第二姓名保存单元213
第一姓名保存单元211,用于若所述用户识别模块卡上已存储的缩位拨号记录中不存在与所述联系人姓名重复的内容,则将所述联系人姓名保存到所述联系人电话号码的第一个号码对应的缩位拨号记录的联系人姓名字段中或将所述联系人姓名保存到所述联系人电话号码对应的所有缩位拨号记录的联系人姓名字段中;
第二姓名保存单元213,用于若所述用户识别模块卡上已存储的缩位拨号记录中存在与所述联系人姓名重复的内容,则不存储所述联系人姓名,或将所述联系人姓名保存到所述联系人电话号码对应的缩位拨号记录中未存储所述联系人姓名的号码对应的联系人姓名字段中。
本实施例移动终端的联系人保存模块根据SIM卡的缩位拨号记录中的配置参数字段和扩展记录标识字段,可以建立联系人姓名所对应的联系人电话号码的链式索引关系,实现在SIM卡上为一个联系人姓名存储多个对应的联系人电话号码。
图7为本发明实施例五提供的移动终端的结构示意图,如图7所示,该移动终端可以包括:
遍历模块31,用于根据开机指令,遍历缩位拨号号码文件的所有缩位拨号记录,所述缩位拨号号码文件的每条缩位拨号记录的联系人姓名字段用于保存联系人姓名,联系人电话号码字段用于保存联系人电话号码,配置参数字段用于保存所述联系人电话号码的号码顺序,扩展记录标识字段用于保存与所述缩位拨号记录的后续缩位拨号记录的数组位置;
读取模块33,用于根据遍历到的当前缩位拨号记录中配置参数字段和扩展记录标识字段建立的联系人姓名所对应的联系人电话号码的链式索引关系,确定是否读取所述当前缩位拨号记录中的联系人姓名和联系人电话号码。
具体地,缩位拨号记录的格式和各个字段的含义可以参见实施例一中的表1及其相关描述。开机时,移动终端的遍历模块31可以根据开机指令,遍历缩位拨号号码文件的所有缩位拨号记录;读取模块33则可以根据遍历到的当前缩位拨号记录中配置参数字段和扩展记录标识字段建立的联系人姓名所对应的联系人电话号码的链式索引关系,确定是否读取所述当前缩位拨号记录中的联系人姓名和联系人电话号码。具体方法可以参见实施例二的相关描述。
本实施例移动终端的读取模块可以根据SIM卡的缩位拨号记录中的配置参数字段和扩展记录标识字段建立的联系人姓名所对应的联系人电话号码的链式索引关系,可以确定如何读取当前缩位拨号记录中的联系人姓名和联系人电话号码,移动终端可以实现从SIM卡中读取一个联系人姓名对应的联系人电话号码。
图8为本发明实施例六提供的移动终端的结构示意图,如图8所示,在实施例五的基础上,该移动终端的读取模块33可以包括以下模块的任意一个或者多个:
未使用读取子模块41,用于若所述当前缩位拨号记录中配置参数字段和扩展记录标识字段为未使用,则读取所述当前缩位拨号记录中的联系人姓名和联系人电话号码;
首号码读取子模块43,用于若所述当前缩位拨号记录中配置参数字段为首号码,则读取所述当前缩位拨号记录中的联系人姓名和联系人电话号码后,根据所述当前缩位拨号记录的扩展记录标识字段中的数组位置,读取所述数组位置对应的后续缩位拨号记录的联系人电话号码,并根据所述后续缩位拨号记录的扩展记录标识字段,确定是否继续读取;
非首号码读取子模块45,用于若所述当前缩位拨号记录中配置参数字段为非首号码,则跳过所述当前缩位拨号记录。
进一步地,首号码读取子模块43可以包括:继续读取单元431和/或停止读取单元433。
其中,继续读取单元431,用于若所述后续缩位拨号记录中扩展记录标识字段存在下一数组位置,则继续读取下一数组位置对应的后续缩位拨号记录的联系人电话号码;
停止读取单元433,用于若所述后续缩位拨号记录的扩展记录标识字段中不存在下一数组位置,则停止读取所述当前缩位拨号记录。
再进一步地,需要搜索用户识别模块卡的某一个联系人信息,该移动终端还可以包括:
搜索模块35,用于若接收到联系人搜索指令,则查找所述用户识别模块卡的是否存在与所述联系人搜索指令中的联系人姓名或联系人电话匹配的缩位拨号记录;若存在,则根据匹配的缩位拨号记录的配置参数字段中保存的联系人电话号码的号码顺序,确定是否读取所述当前缩位拨号记录中的联系人姓名和联系人电话号码。此外,若不存在,搜索模块35可以结束搜索过程,或返回未搜索、搜索错误等表示搜索结果的提示。
本实施例移动终端的读取模块的各个子模块可以根据SIM卡的缩位拨号记录中的配置参数字段和扩展记录标识字段建立的联系人姓名所对应的联系人电话号码的链式索引关系,可以确定如何读取当前缩位拨号记录中的联系人姓名和联系人电话号码,移动终端可以实现从SIM卡中读取一个联系人姓名对应的联系人电话号码。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。