用Tasker制作一个简单的流量统计插件

本文将介绍使用Tasker制作一个简单的流量插件,插件能够自动判断当前的网络类型(WIFI/移动网络),并精确显示当前网络的上行和下行流量信息。

data usage notify

显示WIFI网络和手机网络的流量信息简单演示:

wifi data

mobile data

原理

如果在Android系统执行下面一条shell:

busybox ifconfig

我们可以得到类似以下的输出结果:

eth0      Link encap:Ethernet  HWaddr 88:30:8A:5F:E8:96    
          inet addr:192.168.1.101  Bcast:255.255.255.255  Mask:255.255.255.0  
          inet6 addr: fe80::8a30:8aff:fe5f:e896/64 Scope:Link  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
          RX packets:2185 errors:0 dropped:58 overruns:0 frame:0  
          TX packets:2131 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:1000   
          RX bytes:1278033 (1.2 MiB)  TX bytes:907559 (886.2 KiB)  

lo        Link encap:Local Loopback    
          inet addr:127.0.0.1  Mask:255.0.0.0  
          inet6 addr: ::1/128 Scope:Host  
          UP LOOPBACK RUNNING  MTU:16436  Metric:1  
          RX packets:566 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:566 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:0   
          RX bytes:112686 (110.0 KiB)  TX bytes:112686 (110.0 KiB)  

从上面的输出我们可以看到ech0网卡信息的最后一句里有详细的RX信息和TX信息,我们可以通过一些简单的shell命令提取并重新整合成我们需要的形式。

上面只有WIFI网卡的信息和本机回环的信息,如果需要移动网络的信息,我们可以在命令后面加上移动网卡的参数:

busybox ifconfig rmnet0  

命令执行后输出的信息:

rmnet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00    
          inet addr:10.109.155.102  P-t-P:10.109.155.102  Mask:255.255.255.255  
          POINTOPOINT NOARP  MTU:1500  Metric:1  
          RX packets:2527 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:2979 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:1000   
          RX bytes:1845666 (1.7 MiB)  TX bytes:364713 (356.1 KiB)  

我们可以使用同样的方法取RX和TX信息。

最后就是判断当前连接的网络了,如果是WIFI网络就显示WIFI的流量信息,如果是移动网络就显示移动网络的流量信息。歉意使用Tasker对"%WIFII"变量做简单的正则匹配就可以做到了。

最后配置一个Task,将上面的信息整合传到Minimalistic Text显示就可以了。配置文件下载: data_usage.tsk v2,下载完成后在Tasker的Task标签导入。

data usage task

Minimalistic Text 的配置

新建一个3X1的插件,增加一个本地变量,变量名称为"%DDU",如下图:

add variable

最后配置一下显示的更新,我们设定每次点击插件时更新流量信息,所以要在MT的点击动作里让Tasker运行更新任务。MT的完整配置下载: data_usage_display,下载后在MT的挂件列表里导入即可。

关键字:tasker, android, minimalistic_text

本文链接:树叶的BLOG >> 用Tasker制作一个简单的流量统计插件

本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 Unported许可协议进行许可。

上一篇 : 移除Chrome烦人的ToFind搜索按钮 下一篇 : 使用VPN Assistant 获取和分析VPN Gate 的服务器列表