码迷,mamicode.com
首页 > 移动开发 > 详细

Android 统计Wifi/2G/3G/4G流量

时间:2014-06-10 06:25:04      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:trafficstats

需求: 统计Wifi/2G/3G/4G流量各多少


Issue:

一. 怎么判断2G/3G/4G

系统源码TelephonyManager类里提供了方法,只是隐藏了,所以可以参源码


二.怎么统计

Android 2.2后提供TrafficStats类,用来进行流量统计,具体使用参考手册

这里我用到了

static long  getTotalRxBytes()  //获取总的接受字节数,包含Mobile和WiFi等  

static long  getTotalTxBytes()  //总的发送字节数,包含Mobile和WiFi等  


三.注意事项

1.  android.net.conn.CONNECTIVITY_CHANGE广播,当手机网络类型切换的时候,系统会发送此广播

2. TrafficStats.getTotalRxBytes()和TrafficStats.getTotalTxBytes()方法获取的值是从开机开始记录的


实现方法:

1. 创建TrafficData table, 字段 trafficData(网络变化使用了多少流量), subtype(网络类型), starttime(开始时间), endtime(结束时间)

2. 创建Sharedpreferences, 记录lastSystemTraffic(上次系统的流量大小),subtype(网络类型),startTime

3. 注册DataTrafficReceiver.监听 android.net.conn.CONNECTIVITY_CHANGE广播和关机广播,当网络变化的时候,获取

currentTraffic=TrafficStats.getTotalRxBytes()+TrafficStats.getTotalTxBytes(), 读取保存在SP中的lastSystemTraffic.

上次网络使用流量 durationTraffic=currentTraffic-lastSystemTraffic. 将durationTraffic保存到数据里

并更新SP里的值

4. 手机重启时,重复3步骤,并清空SP里的值



 



Android 统计Wifi/2G/3G/4G流量,布布扣,bubuko.com

Android 统计Wifi/2G/3G/4G流量

标签:trafficstats

原文地址:http://blog.csdn.net/longwuxu/article/details/29585817

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!