移动终端
2013 年 4 月 29 日
用Tasker制作一个简单的流量统计插件
本文介绍如何使用Tasker制作一个简单的流量插件,该插件可以自动检测当前网络类型并显示上下行流量信息。文章通过演示显示了在WIFI和移动网络下的流量信息。文章还介绍了插件的原理,通过在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标签导入。
Minimalistic Text 的配置
新建一个3X1的插件,增加一个本地变量,变量名称为”%DDU”,如下图:
最后配置一下显示的更新,我们设定每次点击插件时更新流量信息,所以要在MT的点击动作里让Tasker运行更新任务。MT的完整配置下载: data_usage_display,下载后在MT的挂件列表里导入即可。
本文为原创文章,未经允许请勿非法盗用资源。我们保护知识产权,尊重每一个创作者的劳动成果。如需转载,请务必注明出处并获得授权,谢谢合作!
作者:Lance | 发表日期:2013 年 4 月 29 日