一种实现内存与用户识别卡数据同步的方法及终端的制作方法
【专利摘要】本发明提供了一种实现内存与用户识别卡数据同步的方法及终端,涉及数据处理领域。在内存中建立数据表,并建立预设索引值与用户识别卡中存储位置的映射关系,用户识别卡数据存储于存储位置;将预设索引值及用户识别卡数据存储于数据表中;后续一旦用户识别卡数据或者数据表数据发生变化,则获取用户识别卡中发生变化的数据的预设索引值,根据预设索引值将用户识别卡中对应的数据更新到数据表中;或者获取所述数据表中发生变化的数据的预设索引值,根据所述索引值将数据表中对应的数据更新到所述用户识别卡中。本发明提供的方法只需读取发生变化的数据并同步到内存数据表或用户数据卡即可,无需读取用户数据卡的全部内容,提高了同步的速度。
【专利说明】-种实现内存与用户识别卡数据同步的方法及终端
【技术领域】
[0001] 本发明涉及通信终端数据处理领域,特别是涉及一种实现内存与用户识别卡数据 同步的方法及终端。
【背景技术】
[0002] 通信终端在存储数据时可根据需要存储到内存ROM或用户识别卡,例如sim (subscriber identity module,用户识别模块)卡。当更换用户识别卡后,例如将sim卡从 通信终端A更换到通信终端B,用户希望直接读取卡中的电话号码或短信息等内容,而不需 要先将存储于通信终端A内存中的数据转移到通信终端B中,然后从通信终端B中读取,因 此,用户优先选择将重要数据存放于用户识别卡中。
[0003] 以短信为例,现有一种管理用户识别卡中数据的方法是在内存开辟一块存储区 域,开机后,调用一次framework层的读卡接口将卡中的短信信息存放于该存储区域中与 终端本地的数据进行统一管理,这样用户需要查询卡中短信时,只需访问终端内存,不需要 读取用户识别卡,减少了卡的读写次数,提高访问速度。
[0004] 发明人在实现本发明的过程中发现现有技术存在如下的缺陷:用户识别卡或内存 中的数据不是固定不变的,例如当sim卡接收短信或将终端本地的号码复制到sim卡中或 删除内存中的短信时,而一旦发生变化,终端就需要再次重新读取用户识别卡中的所有数 据,以同步内存与用户识别卡中的数据。而其中有一些数据是不变的,如果重新读取一遍, 则增加了同步的时间。
【发明内容】
[0005] 本发明提供了一种实现内存与用户识别卡数据同步的方法及终端,可在开机读取 用户识别卡中的数据后,维持内存与卡中数据同步,提高同步速度。
[0006] 为了解决上述问题,本发明公开了一种实现内存与用户识别卡数据同步的方法, 包括以下步骤: 在所述内存中建立数据表,并建立预设索引值与用户识别卡中存储位置的映射关系, 用户识别卡数据存储于所述存储位置;将所述预设索引值及所述用户识别卡数据存储于 所述数据表中;获取所述用户识别卡中发生变化的数据的预设索引值,根据所述预设索 引值将用户识别卡中对应的数据更新到所述数据表中;或者,获取所述数据表中发生变化 的数据的预设索引值,根据所述索引值将数据表中对应的数据更新到所述用户识别卡中。
[0007] 本发明的另一目的是提供一种实现内存与用户识别卡数据同步的终端,包括: 内存,用于建立数据表;用户识别卡,用于建立预设索引值与用户识别卡中存储位置 的映射关系,用户识别卡数据存储于所述存储位置;存储单元,用于将所述预设索引值及 所述用户识别卡数据存储于所述数据表中;同步单元,用于获取所述用户识别卡中发生 变化的数据的预设索引值,根据所述预设索引值将用户识别卡中对应的数据更新到所述数 据表中;或者,获取所述数据表中发生变化的数据的预设索引值,根据所述索引值将数据表 中对应的数据更新到所述用户识别卡中。
[0008] 与现有技术相比,本发明包括以下优点: 本发明中,在完成了内存数据的初始化后,即将用户识别卡中的数据存储到内存数据 表中,使内存与用户识别卡的数据内容一致。后续一旦用户识别卡的数据或者内存数据表 的数据发生变化,获取发生变化的数据的预设索引值,根据预设索引值与用户识别卡中存 储位置的映射关系,找到相应的数据内容,只需读取发生变化的数据并同步到内存数据表 或用户数据卡即可,无需读取用户数据卡的全部内容,提高了同步的速度。
[0009]
【专利附图】
【附图说明】 图1是本发明一实施例实现内存与用户识别卡数据同步的方法流程图; 图2是本发明一实施例的实现内存与用户识别卡数据同步的数据流图。
[0010] 图3为本发明一实施例的实现内存与用户识别卡数据同步的终端结构框图。
【具体实施方式】
[0011] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实 施方式对本发明作进一步详细的说明。
[0012] 通信终端,例如手机中,提供了一种统一管理本地数据与用户识别卡数据的方法, 将用户识别卡中的数据对应到内存的一块存储区域,避免每次需要查询卡中对应的数据 时,都从用户识别卡中读取。本发明正是基于这种统一管理的方法所作出的改进。
[0013] 参照图1,为本发明一实施例实现内存与用户识别卡数据同步的方法流程图。本发 明提供一种实现内存与用户识别卡数据同步的方法,包括以下步骤: 步骤101 :在所述内存中建立数据表,并建立预设索引值与用户识别卡中存储位置的 映射关系,用户识别卡数据存储于所述存储位置。
[0014] 本发明中,用户识别卡可以包括sim卡、ruim卡、及usim卡,卡中的数据可以为 号码息和/或短息。
[0015] 以用户识别卡为sim卡,卡内数据为短信信息为例,首先在手机内存的信息数据 库provider中建立数据表iccsms表,其中,provider用于保存手机所有的短信信息,包括 本地短信和sim卡内的短信。
[0016] 本实施例中预设索引值用于规定sim卡中的物理存储位置的顺序,例如sim卡中 最多可存储60条短信,则索引值为1-60。建立预设索引值与存储位置的映射关系,这种关 系是一一对应的关系,例如预设索引值为1,对应的是第一条短息。需要说明的是,当短信从 某个存储位置删除,对应存储位置的预设索引值仍然存在。
[0017] 步骤102 :将所述预设索引值及所述用户识别卡数据存储于所述数据表中。
[0018] 本步骤是对数据表初始化的过程。示例性地,android系统在手机开机时发送 B00T_C0MPLETED广播,手机接收广播后启动SmsService,在framework层短信的接口类 SmsManager中调用getAllMessagesFromlcc标准读卡接口函数,从而获取sim卡中的预设 索引值及短信信息,并从所述短信信息中提取出信息内容,发送或接收时间,信息类型等内 容。然后,调用sqlite insert函数将上述获取的内容插入iccsms表,完成数据表的初始 化。
[0019] 为了进一步增加本方案的稳定性,还增加了相关保护措施,例如在低内存手机中, 由于开机进行相关操作的服务很多,根据android的内核机制,应用的服务在后台经常被 关闭,初始化数据表时由于读卡时间较长,很容易在没有读完卡中短信时服务已经被关闭。 针对此种情况,在读取所述用户识别卡中数据的服务中加入休眠锁,此时android内核发 现该服务有休眠锁会提高服务的优先级,避免被内核关闭。
[0020] 步骤103 :获取所述用户识别卡中发生变化的数据的预设索引值,根据所述预设 索引值将用户识别卡中对应的数据更新到所述数据表中;或者,获取所述数据表中发生变 化的数据的预设索引值,根据所述索引值将数据表中对应的数据更新到所述用户识别卡 中。
[0021] 在一实施例中,所述用户识别卡中发生变化的数据包括添加的数据。在另一实施 例中,所述数据表中发生变化的数据包括修改或删除的数据。下面,通过以下各个实施例对 这两种情况进行详细介绍。
[0022] 实施例一: 本实施例中步骤201-202与步骤101-102相同,在此不再赘述。
[0023] 步骤203 :当用户识别卡中的数据发生变化时,获取该数据所处存储位置所对应 的预设索引值,根据所述预设索引值将用户识别卡中对应的数据更新到所述数据表中。
[0024] 参阅图2,为本发明一实施例的实现内存与用户识别卡数据同步的数据流图。本实 施例中发生变化的数据包括添加的数据,例如预先设置短信存储器为sim卡,当接受新短 信时,modem会直接将短信存储在sim卡中。此时在framework层,调用SimRecords读取 sim卡中所有目录的信息,包括预设索引值index值,并通过非标准广播的方式告之信息服 务service, service此时知道卡中已经收取短信,通过广播方式获取到index值,并根据此 index值读取sim卡中该index对应的短信信息,包括信息内容,发送或接收时间,信息类 型等内容。将获取到的短信信息连同index值同步保存到iccsms表,保证数据表中数据与 sim卡中数据的同步。
[0025] 优选情况下,当sim卡中短信满时,modem会将优先存储器自动设置为手机,此 时终端来短信的时候是按照手机正常上报短信的流程进行处理的,避免卡中短信满造成 Modem拒绝接收短信的问题。
[0026] 用户识别卡中发生变化数据包括添加的数据的情况还可以是将手机本地的短信 复制到sim卡中。此时获取被复制的短信信息,调用数据库provider接口,在provider 中再调用卡短信复制函数,此时注意,如果调用原生接口,返回的只是复制成功或者失败结 果,无法获取到复制到sim卡中的短信index值。本方案中扩充原生接口,并修改framework 层相应的接口函数,使其能够返回index值。如果复制成功,将返回的index值和调用卡 短信复制函数获取到的短信信息一并插入到数据库的iccsms表中。如果失败,不执行数据 库的插入操作,将结果反馈给用户。
[0027] 优选情况下,获取所述用户识别卡中发生变化的数据的预设索引值之前包括:判 断所述用户识别卡中的数据是否达到预设的存储上限,是则结束流程;否则继续流程。例如 当用户在手机界面进行复制操作的时候,从数据表中可以知道sim卡中短信的数量,从而 可以判断sim卡中的短信是否已经满,如果已经满则直接反馈给用户,此时不能复制短信 至丨J sim卡。
[0028] 本发明实施例保证了当用户识别卡有新添加的数据时,只需获取发生变化的数据 的预设索引值,根据预设索引值与用户识别卡中存储位置及其存储的数据的映射关系,找 到相应的数据内容,插入到数据表中,更新数据表的数据。对于其他没有变化的数据,无需 读取,从而提高了数据同步的速度。
[0029] 实施例二: 本实施例中步骤301-302与步骤101-102相同,在此不再赘述。
[0030] 步骤303 :当所述数据表中的数据发生变化时,获取所述数据表中发生变化的数 据的预设索引值,根据所述索引值将数据表中对应的数据更新到所述用户识别卡中。
[0031] 本实施例中发生变化的数据包括修改或删除的数据。例如当用户需要删除Sim卡 中的短信时,首先在手机界面上显示sim卡中的所有短信,选取短信进行删除。由于本方案 是从内存中读取数据,此时删除的只是内存中的短信,因此还需要将sim卡对应的短信一 并删除。具体做法是根据用户选取的短信获取原先已保存在数据表中对应的index值,当 用户确认删除时,调用标准的卡上短信删除函数deleteMessageFromlcc,将index值传入 到该函数中,经过framework层,使Modem进行sim卡中短信删除操作。
[0032] 对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但 是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某 些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描 述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0033] 实施例三: 参阅图3,为本发明一实施例的实现内存与用户识别卡数据同步的终端结构框图。在本 实施例中,提供一种实现内存与用户识别卡数据同步的终端,包括: 内存,用于建立数据表401 ; 用户识别卡402,用于建立预设索引值与用户识别卡中存储位置的映射关系,用户识别 卡数据存储于所述存储位置; 存储单元403,用于将所述预设索引值及所述用户识别卡数据存储于所述数据表中; 同步单元404,用于获取所述用户识别卡中发生变化的数据的预设索引值,根据所述预 设索引值将用户识别卡中对应的数据更新到所述数据表中;或者,获取所述数据表中发生 变化的数据的预设索引值,根据所述索引值将数据表中对应的数据更新到所述用户识别卡 中。
[0034] 其中,所述用户识别卡中发生变化的数据包括添加的数据,此时同步单元还用于 判断所述用户识别卡中的数据是否达到预设的存储上限,是则结束流程;否则继续获取所 述用户识别卡中发生变化的数据的预设索引值。
[0035] 所述数据表中发生变化的数据包括修改或删除的数据。
[0036] 所述用户识别卡中的数据包括号码信息或短信信息。
[0037] 所述存储单元还用于开机时创建读取所述用户识别卡中数据的服务,并提高所述 服务的优先级。
[0038] 对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关 之处参见方法实施例的部分说明即可。
[0039] 本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与 其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0040] 本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序 模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组 件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由 通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以 位于包括存储设备在内的本地和远程计算机存储介质中。
[0041] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将 一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作 之间存在任何这种实际的关系或者顺序。而且,术语"包括"、"包含"或者其任何其他变体 意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括 那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或 者设备所固有的要素。在没有更多限制的情况下,由语句"包括一个……"限定的要素,并 不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0042] 以上对本发明所提供的一种。。,进行了详细介绍,本文中应用了具体个例对本发 明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其 核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用 范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【权利要求】
1. 一种实现内存与用户识别卡数据同步的方法,其特征在于,包括以下步骤:在所述 内存中建立数据表,并建立预设索引值与用户识别卡中存储位置的映射关系,用户识别卡 数据存储于所述存储位置;将所述预设索引值及所述用户识别卡数据存储于所述数据表 中;获取所述用户识别卡中发生变化的数据的预设索引值,根据所述预设索引值将用户 识别卡中对应的数据更新到所述数据表中;或者,获取所述数据表中发生变化的数据的预 设索引值,根据所述索引值将数据表中对应的数据更新到所述用户识别卡中。
2. 根据权利要求1所述的方法,其特征在于:所述用户识别卡中发生变化的数据包括 添加的数据。
3. 根据权利要求2所述的方法,其特征在于:获取所述用户识别卡中发生变化的数据 的预设索引值之前包括:判断所述用户识别卡数据是否达到预设的存储上限,是则结束流 程;否则继续流程。
4. 根据权利要求1所述的方法,其特征在于:所述数据表中发生变化的数据包括修改 或删除的数据。
5. 根据权利要求1所述的方法,其特征在于:所述用户识别卡数据为号码信息和/或 短息。
6. 根据权利要求1所述的方法,其特征在于:将所述用户识别卡数据存储于所述数据 表中包括:开机时创建读取所述用户识别卡数据的服务,并提高所述服务的优先级。
7. -种实现内存与用户识别卡数据同步的终端,其特征在于,包括:内存,用于建立 数据表;用户识别卡,用于建立预设索引值与用户识别卡中存储位置的映射关系,用户识 别卡数据存储于所述存储位置;存储单元,用于将所述预设索引值及所述用户识别卡数 据存储于所述数据表中;同步单元,用于获取所述用户识别卡中发生变化的数据的预设 索引值,根据所述预设索引值将用户识别卡中对应的数据更新到所述数据表中;或者,获取 所述数据表中发生变化的数据的预设索引值,根据所述索引值将数据表中对应的数据更新 到所述用户识别卡中。
8. 根据权利要求7所述的终端,其特征在于:所述用户识别卡中发生变化的数据包括 添加的数据。
9. 根据权利要求8所述的终端,其特征在于:所述同步单元还用于判断所述用户识别 卡数据是否达到预设的存储上限,是则结束流程;否则继续获取所述用户识别卡中发生变 化的数据的预设索引值。
10. 根据权利要求7所述的终端,其特征在于:所述数据表中发生变化的数据包括修改 或删除的数据。
11. 根据权利要求7所述的终端,其特征在于:所述用户识别卡数据包括号码信息或短 息。
12. 根据权利要求7所述的终端,其特征在于:所述存储单元还用于开机时创建读取所 述用户识别卡数据的服务,并提高所述服务的优先级。
【文档编号】H04M1/2745GK104113621SQ201410289839
【公开日】2014年10月22日 申请日期:2014年6月26日 优先权日:2014年6月26日
【发明者】刘涛, 阙远, 王双, 张艳凤 申请人:青岛海信移动通信技术股份有限公司