智能终端的流量控制方法及装置
技术领域
本发明实施例属于通信领域,尤其涉及一种智能终端的流量控制方法及装置。
背景技术
目前的智能终端(如手机)通常具备上网功能,且智能终端上的各种应用也多需要联网才能应用。但智能终端(如手机)每个月的上网流量大都是受限制的,超过限额的流量将产生过高的费用。
为了避免产生超额的流量进而产生超额的费用,现有的流量控制方法通常会设置一个流量上限,当超过该流量上限时,自动限制整个智能终端(如手机)使用流量。但在实际情况中,即使智能终端(如手机)已超过限额的流量,用户仍希望使用某些应用实现上网功能,现有的流量控制方法难以提供上述功能,从而降低用户体验。
发明内容
本发明实施例提供了一种智能终端的流量控制方法及装置,旨在解决现有方法难以对特定应用的流量进行控制,导致流量控制不准确的问题。
本发明实施例是这样实现的,一种智能终端的流量控制方法,所述方法包括:
获取至少2个应用对应的流量上限;
统计所述至少2个应用已消耗的流量;
分别判断所述至少2个应用已消耗的流量是否大于或等于所述至少2个应用对应的流量上限;
在应用已消耗的流量大于或等于所述应用对应的流量上限时,控制所述应用的流量。
本发明实施例的另一目的在于提供一种智能终端的流量控制装置,所述装置包括:
流量上限获取单元,用于获取至少2个应用对应的流量上限;
已消耗的流量统计单元,用于统计所述至少2个应用已消耗的流量;
已消耗的流量超限判断单元,用于分别判断所述至少2个应用已消耗的流量是否大于或等于所述至少2个应用对应的流量上限;
流量控制单元,用于在应用已消耗的流量大于或等于所述应用对应的流量上限时,控制所述应用的流量。
在本发明实施例中,由于可分别控制不同应用的流量,因此使得流量的控制更准确,提高用户的良好体验。
附图说明
图1是本发明第一实施例提供的一种智能终端的流量控制方法的流程图;
图2是本发明第二实施例提供的一种智能终端的流量控制装置的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例中,获取至少2个应用对应的流量上限,统计所述至少2个应用已消耗的流量,分别判断所述至少2个应用已消耗的流量是否大于或等于所述至少2个应用对应的流量上限,在应用已消耗的流量大于或等于所述应用对应的流量上限时,控制所述应用的流量。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
图1示出了本发明第一实施例提供的一种智能终端的流量控制方法的流程图,详述如下:
步骤S11,获取至少2个应用对应的流量上限。
其中,这里的流量上限是指一段时间,比如,一天,一个月的流量上限。
该步骤中,应用对应的流量上限主要通过2种方式确定:1种是用户根据需求设置不同应用的流量上限,另1种是智能终端根据各个应用以往的流量使用情况确定。
可选地,当智能终端根据各个应用以往的流量使用情况确定时,所述获取至少2个应用对应的流量上限,具体包括:
A1、采用下式统计应用在前n个时间单位实际消耗的平均流量:
Mt=(w1At-1+w2At-2+w3At-3+...+wnAt-n)/n,其中,At-n为应用在第t-n个时间单位实际消耗的流量,wn为At-n的权重,Mt为应用在前n个时间单位实际消耗的平均流量。其中,n大于等于1,t-n大于等于0,这里的时间单位可以为日,或为月,或为年等;各个时间单位对应的权重是逐渐减小,即离当前时间越近的时间单位对应的权重越大,以保证离当前时间越近,其实际消耗的流量更具参考价值。该步骤中,需要存储各个应用在当前时间的前n个时间单位实际消耗的流量,比如,假设时间单位为日,则需要存储确定Mt之前的n日实际消耗的流量。
A2、根据所述Mt确定应用的流量上限。该步骤中,由于Mt为一个平均值,而实际情况中肯定会出现比平均值高的值,因此,可将Mt与预设的系数相乘后的乘积作为应用的流量上限,或者,将Mt与预设的增量相加后的和作为应用的流量的上限。其中,预设的系数大于1,比如,1.1或1.2等,预设的增量大于0,比如5M,或50M等。
进一步地,若不直接将Mt作为应用的流量上限,所述A2具体包括:
A21、采用下式统计应用在前N个时间单位实际消耗的平均流量,每个N包括n个时间单位:
M′t=(Mt-1+Mt-2+Mt-3+...+Mt-N)/N,其中,Mt-N为应用在前t-N个时间单位实际消耗的平均流量,且t-N大于等于0。Mt'为应用在前N个时间单位实际消耗的二次平均流量。例如,假设n=5天,则Mt-1表示应用距离当天5天之前的实际消耗的平均流量,Mt-2表示应用距离当天10天之前的实际消耗的平均流量,其他依此类推。其中,上述的Mt-1、Mt-2、Mt-3、Mt-N均为同一个应用实际消耗的平均流量,当需要确定多个应用的流量上限时,需要分别获取该多个应用对应的实际消耗的平均流量。
A22、将所述Mt'作为应用的流量上限。通过再次平均N个时间单位实际消耗的平均流量,使得确定的应用的流量上限更准确。
步骤S12,统计所述至少2个应用已消耗的流量。
具体地,若获取的是2个应用对应的流量上限,则统计该2个应用在一段时间内已消耗的流量,若获取的是2个以上应用对应的流量上限,则统计该2个以上应用在一段时间内已消耗的流量。比如,由于智能终端的流量通常是包月的,因此,只需统计应用在扣费之后的第一天到当天已消耗的流量。
步骤S13,分别判断所述至少2个应用已消耗的流量是否大于或等于所述至少2个应用对应的流量上限。
具体地,将应用A已消耗的流量与该应用A对应的流量上限比较,将应用B已消耗的流量与该应用B对应的流量上限比较,…,以便分别判断至少2个应用已消耗的流量是否大于或等于所述至少2个应用对应的流量上限。
步骤S14,在应用已消耗的流量大于或等于所述应用对应的流量上限时,控制所述应用的流量。
这里的控制应用的流量主要是指断开应用的网络。可选地,在控制所述应用的流量后,发出已控制应用的流量的提示,该提示包括被控制的应用的标识信息,以便用户知悉当前哪个应用的流量被控制。
其中,所述在应用已消耗的流量大于或等于所述应用对应的流量上限时,控制所述应用的流量,具体包括:
B1、在应用已消耗的流量大于或等于所述应用对应的流量上限时,添加iptables输出链规则到shell文件。该iptables为集成到linux内核中静态防火墙。在应用已消耗的流量大于或等于所述应用对应的流量上限时,需要断开该应用的网络,此时,添加iptablesoutput链规则到shell文件。
B2、添加执行shell文件的系统服务。
B3、使用socket连接系统服务,以使系统服务执行shell文件,实现应用断网。当系统服务执行shell文件后,iptablesoutput链规则生效,从而实现应用的断网。
上述B1~B3中,由于使用iptables自动限制应用数据流出,因此,无需用户手动管控,从而简化用户操作,提高用户的良好体验。
可选地,在应用已消耗的流量小于所述应用对应的流量上限且大于预设的部分控制阈值时,
禁止应用的视频数据、语音数据以及图片数据的收发,但允许文字数据的收发。
其中,预设的部分控制阈值同样可通过2种方式确定:1种是用户根据需求对各个应用或部分应用进行设置,另1种是在确定应用的流量上限后,设置低于该应用的流量上限的某个数作为该应用的部分控制阈值。
该步骤中,当判断出某个应用已消耗的流量小于应用对应的流量上限且大于预设的部分控制阈值时,禁止应用的视频数据、语音数据以及图片数据的收发,但允许文字数据的收发,这样,既保证该某个应用的基本功能能够实现,也能限制该某个应用使用的流量过多,减缓该某个应用的流量的耗费。可选地,还可关闭该某个应用的自动更新功能,以进一步减缓该某个应用的流量的耗费。
当然,若应用已消耗的流量小于预设的部分控制阈值,则不做任何处理。
本发明第一实施例中,获取至少2个应用对应的流量上限,统计所述至少2个应用已消耗的流量,分别判断所述至少2个应用已消耗的流量是否大于或等于所述至少2个应用对应的流量上限,在应用已消耗的流量大于或等于所述应用对应的流量上限时,控制所述应用的流量。由于可分别控制不同应用的流量,因此使得流量的控制更准确,提高用户的良好体验。
应理解,在本发明实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
实施例二:
图2示出了本发明第二实施例提供的一种智能终端的流量控制装置的结构图,该智能终端的流量控制装置可应用于智能终端中,该智能终端可以包括经无线接入网RAN与一个或多个核心网进行通信的用户设备,该用户设备可以是移动电话(或称为“蜂窝”电话)、具有移动设备的计算机等,例如,用户设备还可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语音和/或数据。又例如,该移动设备可以包括智能手机、平板电脑、个人数字助理PDA、销售终端POS或车载电脑等。为了便于说明,仅示出了与本发明实施例相关的部分。
该智能终端的流量控制装置包括:
流量上限获取单元21,用于获取至少2个应用对应的流量上限。
其中,这里的流量上限是指一段时间,比如,一天,一个月的流量上限。
应用对应的流量上限主要通过2种方式确定:1种是用户根据需求设置不同应用的流量上限,另1种是智能终端根据各个应用以往的流量使用情况确定。
可选地,当智能终端根据各个应用以往的流量使用情况确定时,所述流量上限获取单元21包括:一次平均流量确定模块和流量上限计算模块。其中:
一次平均流量确定模块,用于采用下式统计应用在前n个时间单位实际消耗的平均流量:
Mt=(w1At-1+w2At-2+w3At-3+...+wnAt-n)/n,其中,At-n为应用在第t-n个时间单位实际消耗的流量,wn为At-n的权重,Mt为应用在前n个时间单位实际消耗的平均流量。其中,这里的时间单位可以为日,或为月,或为年等;各个时间单位对应的权重是逐渐减小,即离当前时间越近的时间单位对应的权重越大,以保证离当前时间越近,其实际消耗的流量更具参考价值。
流量上限计算模块,用于根据所述Mt确定应用的流量上限。可选地,由于Mt为一个平均值,而实际情况中肯定会出现比平均值高的值,因此,流量上限计算模块包括:
乘积流量上限确定模块,用于将Mt与预设的系数相乘后的乘积作为应用的流量上限,所述预设的系数大于1。其中,预设的系数大于1,比如,1.1或1.2等。
增量流量上限确定模块,用于将Mt与预设的增量相加后的和作为应用的流量的上限,所述预设的增量大于0。其中,预设的增量大于0,比如5M,或50M等。
可选地,若不直接将Mt作为应用的流量上限,所述流量上限计算模块包括:二次平均流量确定模块和流量上限确定模块。其中:
二次平均流量确定模块,用于采用下式统计应用在前N个时间单位实际消耗的平均流量,每个N包括n个时间单位:
Mt′=(Mt-1+Mt-2+Mt-3+...+Mt-N)/N,其中,Mt-N为应用在前t-N个时间单位实际消耗的平均流量,Mt'为应用在前N个时间单位实际消耗的二次平均流量。其中,上述的Mt-1、Mt-2、Mt-3、Mt-N均为同一个应用实际消耗的平均流量,当需要确定多个应用的流量上限时,需要分别获取该多个应用对应的实际消耗的平均流量。
流量上限确定模块,用于将所述Mt'作为应用的流量上限。通过再次平均N个时间单位实际消耗的平均流量,使得确定的应用的流量上限更准确。
已消耗的流量统计单元22,用于统计所述至少2个应用已消耗的流量。
具体地,若获取的是2个应用对应的流量上限,则统计该2个应用在一段时间内已消耗的流量,若获取的是2个以上应用对应的流量上限,则统计该2个以上应用在一段时间内已消耗的流量。比如,由于智能终端的流量通常是包月的,因此,只需统计应用在扣费之后的第一天到当天已消耗的流量。
已消耗的流量超限判断单元23,用于分别判断所述至少2个应用已消耗的流量是否大于或等于所述至少2个应用对应的流量上限。
流量控制单元24,用于在应用已消耗的流量大于或等于所述应用对应的流量上限时,控制所述应用的流量。
这里的控制应用的流量主要是指断开应用的网络。可选地,在控制所述应用的流量后,发出已控制应用的流量的提示,该提示包括被控制的应用的标识信息,以便用户知悉当前哪个应用的流量被控制。
其中,所述流量控制单元24包括:
链规则添加模块,用于在应用已消耗的流量大于或等于所述应用对应的流量上限时,添加iptables输出链规则到shell文件。该iptables为集成到linux内核中静态防火墙。
系统服务添加模块,用于添加执行shell文件的系统服务。
系统服务连接模块,用于使用socket连接系统服务,以使系统服务执行shell文件,实现应用断网。
上述链规则添加模块、系统服务添加模块和系统服务连接模块中,由于使用iptables自动限制应用数据流出,因此,无需用户手动管控,从而简化用户操作,提高用户的良好体验。
可选地,所述智能终端的流量控制装置包括:
应用流量部分控制单元,用于在应用已消耗的流量小于所述应用对应的流量上限且大于预设的部分控制阈值时,禁止应用的视频数据、语音数据以及图片数据的收发,但允许文字数据的收发。
其中,预设的部分控制阈值同样可通过2种方式确定:1种是用户根据需求对各个应用或部分应用进行设置,另1种是在确定应用的流量上限后,设置低于该应用的流量上限的某个数作为该应用的部分控制阈值。由于禁止应用的视频数据、语音数据以及图片数据的收发,但允许文字数据的收发,因此既保证该某个应用的基本功能能够实现,也能限制该某个应用使用的流量过多,减缓该某个应用的流量的耗费。可选地,还可关闭该某个应用的自动更新功能,以进一步减缓该某个应用的流量的耗费。
本发明第二实施例中,由于可分别控制不同应用的流量,因此使得流量的控制更准确,提高用户的良好体验。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。