欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  技术分享

Android流量监控模块开发源代码下载

程序员文章站 2022-03-01 13:23:32
...

本Demo是一个基于安卓的带悬浮窗和图表统计的流量助手项目源码、程序主要功能

1、记录本月、当天的手机数据流量和WIFI流量

2、记录每个程序的当天使用情况

3、流量悬浮窗、显示每秒的流量情况(默认的是每5秒更新一次、如果觉得更新太慢改成1秒就好了)


原理是通过API里的TrafficStats类获得流量信息、由于流量信息在关机后会被清零、所以用SQLite把数据保存了下来、主要就是用了大量的数据库操作和很多逻辑上的东西(比如建两个数据表、一个临时汇总、一个记录真实数据)、通过AlarmService实现定时更新流量、通过前台Service实现悬浮窗、免得悬浮窗被回收

Android流量监控模块开发源代码下载


部分代码

@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