手机及彩信通知消息处理方法

文档序号:7715201阅读:344来源:国知局

专利名称::手机及彩信通知消息处理方法
技术领域
:本发明涉及移动通信领域,尤其涉及移动通信系统中手机处理彩信通知消息的方法。
背景技术
:彩信业务(匪S,MultimediaMessagingService)是移动运营商推出的以无线应用协议(WAP,WirelessApplicationProtocol)为载体,传送多媒体信息的短信业务。彩信业务可实现即时的手机到手机、手机到互联网或互联网到手机的多媒体信息传送。彩信业务最大的特色就是支持多媒体功能,能够传递文字、图像、声音、视频等各种多媒体格式的信息。彩信业务不但能传输短信业务中基本的文字信息,而且能传输图像、声音、动画、振动、视频等多媒体内容,还可以配有现场图片的体育新闻、有趣的卡通漫画、内容丰富的贺卡、精彩的动画游戏等应用内容。目前的手机一般都支持彩信业务,彩信业务主要包括彩信的收发、彩信的管理、彩信的播放等。彩信的接收是一个比较复杂的过程,该过程首先需要彩信中心向手机发送一个推入(PUSH)消息,通知用户在彩信中心上有彩信,如果用户选择了接收,然后手机就从推入消息中解析出该彩信的统一资源定位符(URL)地址,通过URL地址向彩信中心发起下载请求,彩信中心再通过WAP链路将彩信发送到手机。因而,PUSH消息也称为彩信的通知消息。通常,彩信中心为了保证用户能收到彩信通知消息,会每隔一段时间向用户发送相同的彩信通知消息,直到收到用户下载的彩信成功的确认消息为止。一般如果用户将手机设置为彩信立即下载,而且网络条件良好的时候,手机接收到彩信后就不会再收到重复的彩信通知消息。但如果用户将手机设置为彩信延迟下载,或当网络条件较差造成下载失败的时候,手机就容易收到重复的彩信通知消息。所以手机在收到重复的彩信通知消息后一般需要作消重处理,常规的办法是在手机中保存之前接收到的彩信通知消息的业务ID,将ID放在链表文件中,同时设置链表的最大长度。当收到彩信通知消息时,解析出该彩信通知消息的业务ID,并依次和链表中各个节点中的业务ID相比较,若发现有相同ID则认为是重复消息并拒绝接收,若没有相同ID则认为收到新的彩信通知消息,然后提醒用户并将该新的业务ID插入该链表文件中。在常规方法中,很难解决这样一个问题,即保存业务ID的链表的最大节点数该如何设置,如果设置过大,不仅会增加系统存储空间开销还会降低查询性能影响及时性,反之设置过小会容易漏掉一些重复通知消息。本发明就在这种技术背景下,提出了一种新的自适应方法有效地来解决上述问题。
发明内容本发明的目的在于提供一种手机及彩信通知消息处理方法,以解决现有技术中由于设置链表的最大长度为固定值,当该固定值设置过大时,不仅会增加系统存储空间还会降低链表的查询效率,当设置过小时则会容易漏掉重复的彩信通知消息的问题。本发明提供一种手机,包括存储模块,用于存储链表,所述链表包括彩信通知消息的业务ID和接收时间,以及链表的最大长度;查询模块,用于在收到彩信通知消息时,查询所述链表是否存在与所述接收到的彩信通知消息的业务ID重复的业务ID;长度判断模块,用于在所述链表不存在与所述接收到的彩信通知消息的业务ID重复的业务ID时,判断链表的长度是否小于所述最大长度;时间差判断模块,用于在链表的长度小于所述最大长度时,判断所述接收时间与链表最后一个节点的时间差,是否大于链表第一个节点和最后一个节点的时间差;链表修改模块,用于根据所述长度判断模块和/或时间差判断模块的判断结果,决定是否将彩信通知消息的业务ID和接收时间作为节点插入链表。优选的,当所述长度判断模块判断链表的长度小于所述最大长度,以及当所述时间差判断模块判断所述接收时间与链表最后一个节点的时间差大于链表第一个节点和最后一个节点的时间差时,所述链表修改模块将彩信通知消息的业务ID和接收时间作为节点插入链表。优选的,当所述长度判断模块判断链表的长度小于所述最大长度,以及当所述时间差判断模块判断所述接收时间与链表最后一个节点的时间差小于链表第一个节点和最后一个节点的时间差时,所述链表修改模块删除链表第一个节点,将所述彩信通知消息的业务ID和接收时间作为节点插入链表。优选的,当所述长度判断模块判断链表的长度大于所述最大长度,所述链表修改模块删除链表第一个节点,将所述彩信通知消息的业务ID和接收时间作为节点插入链表。优选的,上述链表还包括最小长度,所述长度判断模块还用于判断链表的长度与最小长度与最大长度之间的关系;所述链表修改模块,用于在链表的长度小于所述最小长度时,将彩信通知消息的业务ID和接收时间作为节点插入链表。优选的,上述链表修改模块还用于在所述长度判断模块判断链表长度大于最小长度而小于最大长度,并且所述时间差判断模块判断所述时间差大于链表第一个节点和最后一个节点的时间差时,将所述业务ID和接收时间作为节点插入链表。优选的,上述链表修改模块还用于在所述长度判断模块判断链表长度大于最小长度而小于最大长度,并且所述时间差判断模块判断所述时间差小于链表第一个节点和最后一个节点的时间差时,删除链表第一个节点,将所述彩信通知消息的业务ID和接收时间作为节点插入链表。本发明还提供一种彩信通知消息处理方法,包括设置链表的最大长度,其中所述链表包括彩信通知消息的业务ID和接收时间;当收到彩信通知消息时,查询所述链表是否存在与所述接收到的彩信通知消息的业务ID重复的业务ID;若不存在,则判断链表的长度是否小于所述最大长度;若小于,则判断所述彩信通知消息的接收时间与链表最后一个节点的时间差,是否大于链表第一个节点和最后一个节点的时间差;若大于,则将所述彩信通知消息的业务ID和接收时间作为节点插入链表。优选的,上述彩信通知消息处理方法还包括若链表长度小于最大长度并且接收时间与链表最后一个节点的时间差小于链表第一个节点和最后一个节点的时间差,则删除链表第一个节点,将所述彩信通知消息的业务ID和接收时间作为节点插入链表。优选的,上述彩信通知消息处理方法还包括设置链表的最小长度,并判断链表的长度与最小长度与最大长度之间的关系;当链表的长度小于最小长度时,将彩信通知消息的业务ID和接收时间作为节点插入链表。优选的,若链表长度大于最小长度而小于最大长度,则判断所述彩信通知消息的接收时间与链表最后节点的时间差;若所述时间差大于链表第一个节点和最后一个节点的时间差,则将所述彩信通知消息的业务ID和接收时间作为节点插入链表。优选的,上述彩信通知消息处理方法还包括若链表长度大于最小长度而小于最大长度,则判断所述彩信通知消息的接收时间与链表最后节点的时间差;若所述时间差小于链表第一个节点和最后一个节点的时间差,则删除链表第一个节点,再将所述彩信通知消息的业务ID和接收时间作为节点插入链表。本发明可在链表的长度小于最大长度时,通过判断彩信通知消息的接收时间与链表最后一个节点的时间差,是否大于链表第一个节点和最后一个节点的时间差,来决定是否插入节点,从而解决现有技术中只根据链表的最大长度来决定是否插入节点,所产生的当固定值设置过大时,不仅会增加系统存储空间还会降低链表的查询效率,当设置过小时则会容易漏掉重复的彩信通知消息的问题。图1所示为本发明手机的一种实施例的结构示意图。图2所示为本发明彩信通知消息处理方法一种实施例的流程图。图3所示为本发明彩信通知消息处理方法另一种实施例的流程图。具体实施例方式下面结合附图和具体实施例对本发明所述技术方案作进一步的详细描述,以使本领域的技术人员可以更好的理解本发明并能予以实施;但所举实施例不作为对本发明的限定。图1所示为本发明手机的一种实施例的结构示意图。本发明实施例中的手机IO包括存储模块101、查询模块102、长度判断模块103、时间差判断模块104和链表修改模块105。存储模块101用于存储链表,该链表包括彩信通知消息的业务ID和接收时间,以及链表的最大长度。具体为,存储模块101中存储有链表,链表保存有手机10所收到的彩信通知消息的信息以及链表的长度信息。本实施例的链表有多个节点,每个节点记录有接收到的彩信通知消息业务ID和接收时间。此外,每个节点按照彩信通知消息的接收时间的顺序依次排列,且最新接收到的彩信通知消息排在链表末尾。链表的具体格式如表1所示。表1节点序号彩信通知消息业务ID彩信通知消息接收时间T节点1ID1Tl节点2ID2T26<table>tableseeoriginaldocumentpage7</column></row><table>表1中的节点1是链表的第一节点,节点m表示链表的最大长度。Tl为业务ID为ID1的彩信通知消息的接收时间,以此类推。查询模块102用于在收到彩信通知消息时,查询链表是否存在与接收到的彩信通知消息的业务ID重复的业务ID。长度判断模块103,用于在链表不存在与接收到的彩信通知消息的业务ID重复的业务ID时,判断链表的长度是否小于最大长度。时间差判断模块104,用于在链表的长度小于最大长度时,判断接收时间与链表最后一个节点的时间差,是否大于链表第一个节点和最后一个节点的时间差。链表修改模块105,用于根据长度判断模块103和/或时间差判断模块104的判断结果,决定是否将彩信通知消息的业务ID和接收时间作为节点插入链表。优选的,当长度判断模块103判断链表的长度小于最大长度,以及当时间差判断模块104判断接收时间与链表最后一个节点的时间差大于链表第一个节点和最后一个节点的时间差时,链表修改模块105将彩信通知消息的业务ID和接收时间作为节点插入链表。优选的,当长度判断模块103判断链表的长度小于最大长度,以及当时间差判断模块104判断接收时间与链表最后一个节点的时间差小于链表第一个节点和最后一个节点的时间差时,链表修改模块105删除链表第一个节点,将彩信通知消息的业务ID和接收时间作为节点插入链表。优选的,当长度判断模块103判断链表的长度大于最大长度,链表修改模块105删除链表第一个节点,将彩信通知消息的业务ID和接收时间作为节点插入链表。本实施例可在链表的长度小于最大长度时,通过判断彩信通知消息的接收时间与链表最后一个节点的时间差,是否大于链表第一个节点和最后一个节点的时间差,来决定是否插入节点,从而解决现有技术中只根据链表的最大长度来决定是否插入节点,所产生的当固定值设置过大时,不仅会增加系统存储空间还会降低链表的查询效率,当设置过小时则会容易漏掉重复的彩信通知消息的问题。进一步的,本发明的链表还包括最小长度,链表的具体格式如表2所示。表2<table>tableseeoriginaldocumentpage7</column></row><table><table>tableseeoriginaldocumentpage8</column></row><table>表2中的节点1是链表的第一节点,以此类推,节点n为链表的第n个节点,同时,n表示链表的最小长度,节点m即表示链表的最大长度。Tl为业务ID为ID1的彩信通知消息的接收时间,以此类推。相应的,长度判断模块103还用于判断链表的长度与最小长度与最大长度之间的关系;链表修改模块105还用于在链表的长度小于最小长度时,将彩信通知消息的业务ID和接收时间作为节点插入链表。链表修改模块105还用于在长度判断模块103判断链表长度大于最小长度而小于最大长度,并且时间差判断模块104判断时间差大于链表第一个节点和最后一个节点的时间差时,将业务ID和接收时间作为节点插入链表。此外,链表修改模块105还用于在长度判断模块103判断链表长度大于最小长度而小于最大长度,并且时间差判断模块104判断时间差小于链表第一个节点和最后一个节点的时间差时,删除链表第一个节点,将彩信通知消息的业务ID和接收时间作为节点插入链表。本实施例可在链表的长度大于最小长度而小于最大长度时,通过判断彩信通知消息的接收时间与链表最后一个节点的时间差,是否大于链表第一个节点和最后一个节点的时间差,来决定是否插入节点,从而解决现有技术中只根据链表的最大长度来决定是否插入节点,所产生的当固定值设置过大时,不仅会增加系统存储空间还会降低链表的查询效率,当设置过小时则会容易漏掉重复的彩信通知消息的问题。图2所示为本发明彩信通知消息处理方法一种实施例的流程图。步骤S301,设置链表的最大长度,其中所述链表包括彩信通知消息的业务ID和接收时间。步骤S302,当收到彩信通知消息时,查询链表是否存在与接收到的彩信通知消息的业务ID重复的业务ID。若存在,则进入步骤S303;若不存在,则进入步骤S304。本实施例中,通过将接收到的彩信通知消息的业务ID和链表中每个节点的业务ID进行逐一比较,以实现查询链表是否存在与接收到的彩信通知消息的业务ID重复的业务ID。步骤S303,丢弃收到的彩信通知消息。步骤S304,判断链表的长度是否小于所述最大长度。若小于,则进入步骤S306,否则进入步骤S305。步骤S305,删除链表第一个节点,再将所述彩信通知消息的业务ID和接收时间作为节点插入链表。步骤S306,判断所述彩信通知消息的接收时间与链表最后一个节点的时间差,是否大于链表第一个节点和最后一个节点的时间差。若大于,则进入步骤S307,否则进入步骤S308。步骤S307,将所述彩信通知消息的业务ID和接收时间作为节点插入链表。步骤S308,删除链表第一个节点,再将所述彩信通知消息的业务ID和接收时间作为节点插入链表。本实施例可在链表的长度小于最大长度时,通过判断彩信通知消息的接收时间与链表最后一个节点的时间差,是否大于链表第一个节点和最后一个节点的时间差,来决定是否插入节点,从而解决现有技术中只根据链表的最大长度来决定是否插入节点,所产生的当固定值设置过大时,不仅会增加系统存储空间还会降低链表的查询效率,当设置过小时则会容易漏掉重复的彩信通知消息的问题。图3所示为本发明彩信通知消息处理方法另一种实施例的流程图。在本实施例中,还设置有链表的最小长度,除了要将链表的长度与最大长度进行比较之外,还需要与最小长度进行比较,具体步骤及有益效果如下步骤S401,设置链表的最小长度和最大长度。步骤S402,接收彩信通知消息。步骤S403,查询链表是否存在与接收到的彩信通知消息的业务ID重复的业务ID。若存在,则进入步骤S404,否则进入步骤S405。步骤S404,丢弃该彩信通知消息。步骤S405,判断是否需要立刻下载该彩信。若需要立即下载,则进入步骤S406,否则进入步骤S407。步骤S406,下载该彩信。步骤S407,判断链表的长度是否小于最小长度。若小于,则进入步骤S411,否则进入步骤S408。步骤S408,判断链表的长度是否达到最大长度。若达到,则进入步骤S410,否则进入步骤S409。步骤S409,判断彩信通知消息的接收时间与链表最后节点的时间差是否小于链表第一个节点和最后一个节点的时间差。若小于,则进入步骤S410,否则进入步骤S411。步骤S410,删除链表第一个节点。步骤S411,将该彩信通知消息的业务ID和接收时间作为节点插入链表。本实施例可在链表的长度大于最小长度而小于最大长度时,通过判断彩信通知消息的接收时间与链表最后一个节点的时间差,是否大于链表第一个节点和最后一个节点的时间差,来决定是否插入节点,从而解决现有技术中只根据链表的最大长度来决定是否插入节点,所产生的当固定值设置过大时,不仅会增加系统存储空间还会降低链表的查询效率,当设置过小时则会容易漏掉重复的彩信通知消息的问题。以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
,均同理包括在本发明的专利保护范围内。权利要求一种手机,其特征在于,包括存储模块,用于存储链表,所述链表包括彩信通知消息的业务ID和接收时间,以及链表的最大长度;查询模块,用于在收到彩信通知消息时,查询所述链表是否存在与所述接收到的彩信通知消息的业务ID重复的业务ID;长度判断模块,用于在所述链表不存在与所述接收到的彩信通知消息的业务ID重复的业务ID时,判断链表的长度是否小于所述最大长度;时间差判断模块,用于在链表的长度小于所述最大长度时,判断所述接收时间与链表最后一个节点的时间差,是否大于链表第一个节点和最后一个节点的时间差;链表修改模块,用于根据所述长度判断模块和/或时间差判断模块的判断结果,决定是否将彩信通知消息的业务ID和接收时间作为节点插入链表。2.如权利要求1所述的手机,其特征在于,当所述长度判断模块判断链表的长度小于所述最大长度,以及当所述时间差判断模块判断所述接收时间与链表最后一个节点的时间差大于链表第一个节点和最后一个节点的时间差时,所述链表修改模块将彩信通知消息的业务ID和接收时间作为节点插入链表。3.如权利要求1所述的手机,其特征在于,当所述长度判断模块判断链表的长度小于所述最大长度,以及当所述时间差判断模块判断所述接收时间与链表最后一个节点的时间差小于链表第一个节点和最后一个节点的时间差时,所述链表修改模块删除链表第一个节点,将所述彩信通知消息的业务ID和接收时间作为节点插入链表。4.如权利要求1所述的手机,其特征在于,当所述长度判断模块判断链表的长度大于所述最大长度,所述链表修改模块删除链表第一个节点,将所述彩信通知消息的业务ID和接收时间作为节点插入链表。5.如权利要求1至4任一所述的手机,其特征在于,所述链表还包括最小长度,所述长度判断模块还用于判断链表的长度与最小长度与最大长度之间的关系;所述链表修改模块,用于在链表的长度小于所述最小长度时,将彩信通知消息的业务ID和接收时间作为节点插入链表。6.如权利要求5所述的手机,其特征在于,所述链表修改模块还用于在所述长度判断模块判断链表长度大于最小长度而小于最大长度,并且所述时间差判断模块判断所述时间差大于链表第一个节点和最后一个节点的时间差时,将所述业务ID和接收时间作为节点插入链表。7.如权利要求5所述的手机,其特征在于,所述链表修改模块还用于在所述长度判断模块判断链表长度大于最小长度而小于最大长度,并且所述时间差判断模块判断所述时间差小于链表第一个节点和最后一个节点的时间差时,删除链表第一个节点,将所述彩信通知消息的业务ID和接收时间作为节点插入链表。8.—种彩信通知消息处理方法,其特征在于,包括设置链表的最大长度,其中所述链表包括彩信通知消息的业务ID和接收时间;当收到彩信通知消息时,查询所述链表是否存在与所述接收到的彩信通知消息的业务ID重复的业务ID;若不存在,则判断链表的长度是否小于所述最大长度;若小于,则判断所述彩信通知消息的接收时间与链表最后一个节点的时间差,是否大于链表第一个节点和最后一个节点的时间差;若大于,则将所述彩信通知消息的业务ID和接收时间作为节点插入链表。9.如权利要求8所述的彩信通知消息处理方法,其特征在于,还包括若链表长度小于最大长度并且接收时间与链表最后一个节点的时间差小于链表第一个节点和最后一个节点的时间差,则删除链表第一个节点,将所述彩信通知消息的业务ID和接收时间作为节点插入链表。10.如权利要求8或9所述的彩信通知消息处理方法,其特征在于,还包括设置链表的最小长度,并判断链表的长度与最小长度与最大长度之间的关系;当链表的长度小于最小长度时,将彩信通知消息的业务ID和接收时间作为节点插入链表。11.如权利要求10所述的彩信通知消息处理方法,其特征在于,若链表长度大于最小长度而小于最大长度,则判断所述彩信通知消息的接收时间与链表最后节点的时间差;若所述时间差大于链表第一个节点和最后一个节点的时间差,则将所述彩信通知消息的业务ID和接收时间作为节点插入链表。12.如权利要求10所述的彩信通知消息处理方法,其特征在于,还包括若链表长度大于最小长度而小于最大长度,则判断所述彩信通知消息的接收时间与链表最后节点的时间差;若所述时间差小于链表第一个节点和最后一个节点的时间差,则删除链表第一个节点,再将所述彩信通知消息的业务ID和接收时间作为节点插入链表。全文摘要本发明涉及一种手机,包括存储模块,用于存储链表,该链表包括彩信通知消息的业务ID和接收时间,以及链表的最大长度;查询模块用于在收到彩信通知消息时,查询链表是否存在与接收到的彩信通知消息的业务ID重复的业务ID;长度判断模块用于判断链表的长度是否小于最大长度;时间差判断模块用于判断接收时间与链表最后一个节点的时间差是否大于链表第一个节点和最后一个节点的时间差;链表修改模块用于根据长度判断模块和/或时间差判断模块的判断结果,决定是否将彩信通知消息的业务ID和接收时间作为节点插入链表。本发明还提供一种彩信通知消息处理方法。本发明可解决现有技术中存在链表的查询效率低和容易漏掉重复的彩信通知消息的问题。文档编号H04M1/725GK101795310SQ20091018935公开日2010年8月4日申请日期2009年12月24日优先权日2009年12月24日发明者曹刚申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1