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

编程入门 行业动态 更新时间:2024-10-28 06:24:39

Android 统计Wifi/2G/3G/4G<a href=https://www.elefans.com/category/jswz/34/1770754.html style=流量"/>

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

需求: 统计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.conn.CONNECTIVITY_CHANGE广播,当手机网络类型切换的时候,系统会发送此广播

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


实现方法:

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

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

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

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

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

并更新SP里的值

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



 



更多推荐

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

本文发布于:2024-02-25 20:53:42,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1700262.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:流量   Android   Wifi

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!