Android流量监控模块开发源代码下载
程序员文章站
2022-03-01 13:23:32
...
本Demo是一个基于安卓的带悬浮窗和图表统计的流量助手项目源码、程序主要功能
1、记录本月、当天的手机数据流量和WIFI流量
2、记录每个程序的当天使用情况
3、流量悬浮窗、显示每秒的流量情况(默认的是每5秒更新一次、如果觉得更新太慢改成1秒就好了)
原理是通过API里的TrafficStats类获得流量信息、由于流量信息在关机后会被清零、所以用SQLite把数据保存了下来、主要就是用了大量的数据库操作和很多逻辑上的东西(比如建两个数据表、一个临时汇总、一个记录真实数据)、通过AlarmService实现定时更新流量、通过前台Service实现悬浮窗、免得悬浮窗被回收
部分代码
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); initView(); /** * 设置当前网络类型 */ setCurNetType(); /** * 更新流量界面 */ new InitTotalInterfaceTask().execute(); /** * 定时更新流量 */ TrafficUtils.startRepeatingService(this, TrafficUtils.INTERVAL, TrafficFetchService.class, ""); /** * 监听网络变化 和 流量更新 */ IntentFilter mFilter = new IntentFilter(); mFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); mFilter.addAction(TrafficUtils.ACTION_UPDATE_TRAFFIC); registerReceiver(mReceiver, mFilter); }
InIt代码
private void initView() { cur_type = AndroidUtils.findViewById(this, R.id.cur_type); cur_interval = AndroidUtils.findViewById(this, R.id.cur_interval); total_mobile = AndroidUtils.findViewById(this, R.id.total_mobile); day_mobile = AndroidUtils.findViewById(this, R.id.day_mobile); total_wifi = AndroidUtils.findViewById(this, R.id.total_wifi); day_wifi = AndroidUtils.findViewById(this, R.id.day_wifi); cur_interval.setText(String.format(getString(R.string.cur_interval), TrafficUtils.INTERVAL)); }
另外、由于每次手机重新启动、流量会清零、这样会导致逻辑变化、所以请务必开启本程序的开机启动权限、不然在重新启动手机后将会工作不正常、系统的这个API好像会把内部流量也算进去、所以跟实际使用的流量可能有误差
程序没什么难点、主要是数据库操作、Service、广播、基础控件的简单应用、数据库是用的xUtils开源框架、是新手学习的绝佳实例!
若资源对你有帮助、扫描下方的二维码、关注DD博客微信公众号(ddblogs)吧
最后给贴上Demo的源代码、希望对大家有用、有兴趣的哥们可以下载看看
源代码下载链接: http://dwtedx.com/download.html?bdkey=s/1i33t9x7 密码: f3iu