一种基于电子设备的数据流量控制方法及系统与流程

文档序号:12279310阅读:367来源:国知局
一种基于电子设备的数据流量控制方法及系统与流程

本发明涉及通信技术领域,尤其涉及一种基于电子设备的数据流量控制方法及系统。



背景技术:

现在的电子设备安装越来越多的应用,电子设备的功能也越来越多,电子设备已经成为人们日常生活中的必不可少的生活工具。

现在电子设备的中很多应用在打开时,若当前流量是打开状态,则电子设备会自动连接流量。但人们在打开电子设备流量的时候可能只是在使用某个应用的时候需要,一般都希望只有这个应用使用流量,其他的应用都不允许使用,但通常来说别的应用也会使用流量,这样就造成了很多流量的浪费或者偷用,为用户使用电子设备带来了不便。

因此,现有技术还有待于改进和发展。



技术实现要素:

鉴于现有技术的不足,本发明目的在于提供一种基于电子设备的数据流量控制方法及系统,旨在解决现有技术中当电子设备的数据流量开启时,电子设备中所有的应用都会使用数据流量,造成了流量的浪费,为用户使用电子设备带来了不便的技术问题。

本发明的技术方案如下:

一种基于电子设备的数据流量控制方法,其中,方法包括步骤:

A、电子设备检测到数据流量消耗后,获取电子设备当前正在消耗数据流量的应用;电子设备判断当前正在消耗数据流量的应用是否在预设的允许数据流量使用名单中;

B、若应用在预设的允许数据流量使用名单中,则电子设备控制允许当前正在消耗数据流量的应用继续访问数据流量;

C、若应用不在预设的数据流量使用名单中,则电子设备控制取消应用数据流量访问权限,并保存应用对应的数据到指定文件中。

所述的基于电子设备的数据流量控制方法,其中,所述步骤A之前还包括步骤:

S1、电子设备监听到数据流量开启时,获取当前正在运行的应用,并判断当前运行的应用是否为桌面应用;

S2、若当前运行的应用为桌面应用,则控制将电子设备中的所有应用加入预设的允许数据流量使用名单;

S3、若当前运行的应用为非桌面应用,则控制将当前运行的应用加入预设的允许数据流量使用名单。

所述的基于电子设备的数据流量控制方法,其中,所述步骤C之后还包括步骤:

D、当检测到数据流量关闭时,电子设备控制恢复应用的数据流量访问权限。

所述的基于电子设备的数据流量控制方法,其中,所述步骤S1具体包括步骤:

S11、电子设备监听到数据流量开启时,获取电子设备的界面管理类;

S12、根据界面管理类获取运行在电子设备最上层的任务,根据最上层的任务获取当前运行的应用的包名,并根据应用的包名判断当前运行的应用是否为桌面应用。

所述的基于电子设备的数据流量控制方法,其中,所述步骤D具体包括步骤:

D1、当检测到数据流量关闭时,电子设备判断指定文件中是否保存有数据;

D2、若指定文件中保存有数据,则根据数据控制恢复对应的应用的数据流量访问权限后,清空指定文件中保存的数据。

一种基于电子设备的数据流量控制系统,其中,系统包括:

应用获取与判断模块,用于电子设备检测到数据流量消耗后,获取电子设备当前正在消耗数据流量的应用,电子设备判断当前正在消耗数据流量的应用是否在预设的允许数据流量使用名单中;

第一流量控制模块,用于若应用在预设的允许数据流量使用名单中,则电子设备控制允许当前正在消耗数据流量的应用继续访问数据流量;

第二流量控制模块,用于若应用不在预设的数据流量使用名单中,则电子设备控制取消应用数据流量访问权限,并保存应用对应的数据到指定文件中。

所述的基于电子设备的数据流量控制系统,其中,所述系统还包括:

监听与判断模块,用于电子设备监听到数据流量开启时,获取当前正在运行的应用,并判断当前运行的应用是否为桌面应用;

第一应用添加模块,用于若当前运行的应用为桌面应用,则控制将电子设备中的所有应用加入预设的允许数据流量使用名单;

第二应用添加模块,用于若当前运行的应用为非桌面应用,则控制将当前运行的应用加入预设的允许数据流量使用名单。

所述的基于电子设备的数据流量控制系统,其中,所述系统还包括:

权限恢复模块,用于当检测到数据流量关闭时,电子设备控制恢复应用的数据流量访问权限。

所述的基于电子设备的数据流量控制系统,其中,所述监听与判断模块具体包括:

监听单元,用于电子设备监听到数据流量开启时,获取电子设备的界面管理类;

应用包名获取与判断单元,用于根据界面管理类获取运行在电子设备最上层的任务,根据最上层的任务获取当前运行的应用的包名,并根据应用的包名判断当前运行的应用是否为桌面应用。

所述的基于电子设备的数据流量控制系统,其中,所述权限恢复模块具体包括:

检测与判断单元,用于当检测到数据流量关闭时,电子设备判断指定文件中是否保存有数据;

访问权限恢复单元,用于若指定文件中保存有数据,则根据数据控制恢复对应的应用的数据流量访问权限后,清空指定文件中保存的数据。

本发明提供了一种基于电子设备的数据流量控制方法及系统,本发明可通过检测当前使用的应用不是用户指定的流量使用者,则关闭应用的流量访问权限,从而防止其他应用使用流量,避免了流量的浪费,为用户带来了方便。

附图说明

图1为本发明的一种基于电子设备的数据流量控制方法的较佳实施例的流程图。

图2为本发明的一种基于电子设备的数据流量控制方法的具体应用实施例的界面在堆栈中的堆放示意图。

图3为本发明的一种基于电子设备的数据流量控制方法的具体应用实施例的应用的流量访问权限限制的流程图。

图4为本发明的一种基于电子设备的数据流量控制方法的具体应用实施例的应用的流量访问权限恢复的流程图。

图5为本发明的一种基于电子设备的数据流量控制系统的较佳实施例的功能原理框图。

具体实施方式

为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明还提供了一种基于电子设备的数据流量控制系统的较佳实施例的流程图,如图1所示,方法包括:

步骤S100、电子设备检测到数据流量消耗后,获取电子设备当前正在消耗数据流量的应用,电子设备判断当前正在消耗数据流量的应用是否在预设的允许数据流量使用名单中;如果是,则执行步骤S200,如果否,则执行步骤S300。

具体实施时,电子设备为手机、平板电脑等可使用数据流量获取数据的智能设备。具体地,可通过后台来获取正在消耗数据流量的应用。其中监控使用流量的具体是通过:可以通过流量管理类(TrafficStats)来监控流量的使用情况,比如通过TrafficStats.getUidRxBytes(uid);方法,再加上时间差的计算,我们就能知道当前的uid有没有使用流量;

我们可以获取到当前运行的应用的包名,通过包名,借助package管理类,我们获取到它的user Id即uid,代码举例如下:

ApplicationInfo applicationInfo = packageManager.getApplicationInfo(包名, PackageManager.GET_ACTIVITIES);Int uid = applicationInfo.uid();

其中,获取应用的方式具体为:后台有task(可以认为是堆栈)会存放所有运行过的界面类。所有运行过的应用程序及它的界面会存放在一个或者多个task中,有的时候,比如用户点击back键的时候,回到上一次界面,它的实现原理就是从task中获取应该会到哪个界面,然后进行呈现。

具体的一个例子如下:在默认的情况下,如果我们运行了A界面,又从A页面进入到B界面,再从B界面进入到C界面,那么task的状态及存放信息如图2所示,先运行的界面会放在栈底,最后运行的界面会放在栈顶。

根据获取的应用,判断当前运行的应用是否在预设的允许数据流量使用名单中。

具体实施时,步骤S100之前还包括:

步骤S1、电子设备监听到数据流量开启时,获取当前正在运行的应用,并判断当前运行的应用是否为桌面应用;

步骤S2、若当前运行的应用为桌面应用,则控制将电子设备中的所有应用加入预设的允许数据流量使用名单;

步骤S3、若当前运行的应用为非桌面应用,则控制将当前运行的应用加入预设的允许数据流量使用名单。

具体实施时,步骤S1中监听到数据流量是否开启,是通过以下方法进行确定:首先注册android.net.conn.CONNECTIVITY_CHANGE的广播,这样当数据连接变化的时候我们能接收到通知;

当收到广播之后,我们判断当前连接的状态是打开还是关闭,举例代码如下:

若NetworkInfo.State.CONNECTED==mNetworkInfo.getState()表示数据连接打开并连接上了;

NetworkInfo.State.DISCONNECTED ==mNetworkInfo.getState()表示数据连接断开了。

步骤S2中如果当前界面是桌面应用,比如Launcher应用,那么这时候打开流量,所有的应用都可以使用流量;则将电子设备的中所有应用都加入预设的允许数据流量使用名单。

步骤S3中如果当前界面呈现的是非桌面应用的其他应用,比如A应用,这时候去打开流量,则只有A应用能够使用流量。取A应用的信息,并且用一个string保存允许使用数据流量的应用包名。

进一步的实施例中,步骤S1具体包括:

步骤S11、电子设备监听到数据流量开启时,获取电子设备的界面管理类;

步骤S12、根据界面管理类获取运行在电子设备最上层的任务,根据最上层的任务获取当前运行的应用的包名,并根据应用的包名判断当前运行的应用是否为桌面应用。

具体实施时,具体实现获取正在运行的应用的方法如下所示:

先获取界面管理类ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);

获取运行在最上层的task;

List<RunningTaskInfo> tasks = activityManager.getRunningTasks(1);

获取到当前运行的应用信息RunningTaskInfo taskInfo = tasks.get(0);

String packageName = taskInfo.topActivity.getPackageName();由于包名唯一标识一个应用,所以我们获取应用的包名就行了。

步骤S200、电子设备控制允许当前正在消耗数据流量的应用继续访问数据流量。

具体实施时,电子设备都拥有类似的安全控制,比如对于不同的功能和操作规定对应的permission,如果谁要进行某个操作或者想拥有某个功能,那么就要声明并获取到对应的permission。

对于数据流量的使用权限,我们需要拥有类似如下的permission:

permission.INTERNET,

permission.ACCESS_NETWORK_STATE,

permission.CHANGE_NETWORK_STATE;

如果发现非指定的应用使用数据流量,我们去除其对应的权限就可以了。我们对权限进行控制,以此来达到对数据访问的控制。若当前正在消耗数据流量的应用在预设的允许数据流量使用名单中,则不对应用的数据流量进行限制。

步骤S300、电子设备控制取消应用数据流量访问权限,并保存应用对应的数据到指定文件中。

具体实施时,若当前正在消耗数据流量的应用不在预设的允许数据流量使用名单中,则控制取消应用数据流量访问权限,并保存应用对应的数据,数据包括应用包名和取消数据流量访问权限的时间。

例如,如果当前最上层的应用是A,它的uid是aUid,本来只允许aUid使用数据流量,但是我们发现bUid使用了流量,那么我们就根据bUid获取到该应用的信息(跟获取uid的方式相反,即通过uid获取ApplicationInfo),通过package管理类(packageManager)获取其全面的信息,并去掉该应用的流量使用权限。

同时为了以后对permission的恢复,我们需要将该数据存储起来。可以保存在数据库或者文件中,保存的数据至少要包括如下信息

1)去除permission的应用包名

2)去除permission的时间。

获取应用permission的方式,依然借助package管理类,举例代码如下:

String[] mPermissions = mPackageManager.getPackageInfo(packageName, PackageManager.GET_PERMISSIONS).requestedPermissions。

进一步的实施例中,步骤S300之后还包括:

步骤S400、当检测到数据流量关闭时,电子设备控制恢复应用的数据流量访问权限。

具体实施时,数据流量关闭时,恢复限制的应用的权限,从而不影响应用的下次使用,有利于用户再下次使用应用时具有数据流量访问权限。

进一步的实施例中,步骤S400具体包括:

步骤S401、当检测到数据流量关闭时,电子设备判断指定文件中是否保存有数据;

步骤S402、若指定文件中保存有数据,则根据数据控制恢复对应的应用的数据流量访问权限后,清空指定文件中保存的数据。

具体实施时,首先读取当时去除permission时保存的数据,如果没有数据则不作处理,如果有数据,则通过包名获得哪些应用需要恢复。

恢复方法类似通过package管理类(packageManager)去除permission的方式,给应用重新set上移除的数据访问permission就行了。恢复之后同时要清空这些保存的数据。

本发明中还提供了一种基于电子设备的数据流量控制方法的具体应用实施例的应用的流量访问权限限制的流程图,如图3所示,方法包括:

步骤S10、监听数据流量的开启;

步骤S20、获取当前最上层的正在运行的应用信息,若正在运行的应用为桌面应用,则执行步骤S92,若正在运行的应用信息为非桌面应用,则执行步骤S30;

步骤S30、获取该应用信息,并且用一个string字符串保存允许使用数据流量的应用包名;

步骤S40、监控使用流量的应用;

步骤S50、判断是否监听某个应用使用数据流量,如果是,则执行步骤S60,如果否,则执行步骤S40;

步骤S60、获取该应用信息;

步骤S70、判断该应用是否是允许使用数据流量的应用,若是,则执行步骤S92,若否,则执行步骤S80;

步骤S80、去除该应用的数据访问权限;

步骤S90、保存该应用的信息;

步骤S91、流程结束;

步骤S92、不做处理。

本发明中还提供了一种基于电子设备的数据流量控制方法的具体应用实施例的应用的流量访问权限恢复的流程图,如图4所示,方法包括:

步骤S21、监听数据流量的关闭;

步骤S22、读取当前去除permission时保存的数据;

步骤S23、判断数据是否存在,若存在,则执行步骤S24,若不存在,则执行步骤S27;

步骤S24、恢复这些应用的数据访问权限;

步骤S25、清除保存的数据;

步骤S26、流程结束;

步骤S27、不做处理,流程结束。

在示例性实施例中,装置可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。

在示例性实施例中,还提供了一种包括指令的非临时计算机可读存储介质,例如包括指令的存储器,上述指令可由装置的处理器执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。

本发明中还提供了一种基于电子设备的数据流量控制系统的较佳实施例功能原理框图,如图5所示,系统包括:

应用获取与判断模块100,用于电子设备检测到数据流量消耗后,获取电子设备当前正在消耗数据流量的应用,电子设备判断当前正在消耗数据流量的应用是否在预设的允许数据流量使用名单中;具体如方法实施例所述。

第一流量控制模块200,用于若应用在预设的允许数据流量使用名单中,则电子设备控制允许当前正在消耗数据流量的应用继续访问数据流量;具体如方法实施例所述。

第二流量控制模块300,用于若应用不在预设的数据流量使用名单中,则电子设备控制取消应用数据流量访问权限,并保存应用对应的数据到指定文件中;具体如方法实施例所述。

所述的基于电子设备的数据流量控制系统,其中,所述系统还包括:

监听与判断模块,用于电子设备监听到数据流量开启时,获取当前正在运行的应用,并判断当前运行的应用是否为桌面应用;具体如方法实施例所述。

第一应用添加模块,用于若当前运行的应用为桌面应用,则控制将电子设备中的所有应用加入预设的允许数据流量使用名单;具体如方法实施例所述。

第二应用添加模块,用于若当前运行的应用为非桌面应用,则控制将当前运行的应用加入预设的允许数据流量使用名单;具体如方法实施例所述。

所述的基于电子设备的数据流量控制系统,其中,所述系统还包括:

权限恢复模块,用于当检测到数据流量关闭时,电子设备控制恢复应用的数据流量访问权限;具体如方法实施例所述。

所述的基于电子设备的数据流量控制系统,其中,所述监听与判断模块具体包括:

监听单元,用于电子设备监听到数据流量开启时,获取电子设备的界面管理类;具体如方法实施例所述。

应用包名获取与判断单元,用于根据界面管理类获取运行在电子设备最上层的任务,根据最上层的任务获取当前运行的应用的包名,并根据应用的包名判断当前运行的应用是否为桌面应用;具体如方法实施例所述。

所述的基于电子设备的数据流量控制系统,其中,所述权限恢复模块具体包括:

检测与判断单元,用于当检测到数据流量关闭时,电子设备判断指定文件中是否保存有数据;具体如方法实施例所述。

访问权限恢复单元,用于若指定文件中保存有数据,则根据数据控制恢复对应的应用的数据流量访问权限后,清空指定文件中保存的数据;具体如方法实施例所述。

综上所述,本发明提供了一种基于电子设备的数据流量控制方法及系统,本发明可通过检测当前使用的应用不是用户指定的流量使用者,则关闭应用的流量访问权限,从而防止其他应用使用流量,避免了流量的浪费,为用户带来了方便。

应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1