在好例子网,分享、交流、成长!
您当前所在位置:首页Java 开发实例Android平台开发 → android 3g流量统计 实例源码下载

android 3g流量统计 实例源码下载

Android平台开发

下载此实例
  • 开发语言:Java
  • 实例大小:0.14M
  • 下载次数:11
  • 浏览次数:146
  • 发布时间:2015-07-14
  • 实例类别:Android平台开发
  • 发 布 人:风雪夜归人
  • 文件格式:.zip
  • 所需积分:2
 相关标签: 统计

实例介绍

【实例简介】
【实例截图】

【核心代码】

package com.cn.gong.activity;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import android.app.Activity;
import android.app.AlarmManager;
import android.app.DatePickerDialog;
import android.app.PendingIntent;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.TrafficStats;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;

import com.cn.gong.database.DataSupport;
import com.cn.gong.database.MyDatePickerDialog;

public class Showmain extends Activity {
	private TextView mg_up_total, mg_down_total, mg_total, mUp_total,
			mDown_total, mliuliang_total, date_start_textview,
			date_over_textview, liuliangzongbiaoti;
	private Button date_start_btn, date_over_btn, search_btn, detail_data_app,show_now_button;
	private int id_number_r = 0, id_number_t = 0;
	public static final String RXG = "rxg";
	public static final String TXG = "txg";
	public static final String RX = "rx";
	public static final String TX = "tx";
	public static final String SHUTDOWN = "d";
	public static final String NORMAL = "n";
	public static final String RX3G = "3g下载流量";
	public static final String TX3G = "3g上传流量";
	public static final String RXT = "下载总流量";
	public static final String TXT = "上传总流量";
	public static final String flag = "first";
	public static final String flagname = "nomber1";
	public static boolean isLog = false;
	private DataSupport minsert = new DataSupport(this);
	private Calendar calendar = Calendar.getInstance();
	private Calendar mcalendar = Calendar.getInstance();

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		init();
		datainsert();
		showdata();
		alarmsave();
	}

	/**
	 * 
	 * 方法说明:初始化应用程序
	 * 
	 */
	private void init() {
		mg_down_total = (TextView) findViewById(R.id.g_down_edit);
		mg_up_total = (TextView) findViewById(R.id.g_up_edit);
		mg_total = (TextView) findViewById(R.id.g_total_edit);
		mUp_total = (TextView) findViewById(R.id.total_up_edit);
		mDown_total = (TextView) findViewById(R.id.total_down_edit);
		mliuliang_total = (TextView) findViewById(R.id.liuliang_total_edit);
		liuliangzongbiaoti = (TextView) findViewById(R.id.liuliang_biaoti);
		date_over_btn = (Button) findViewById(R.id.date_over_btn);
		date_start_btn = (Button) findViewById(R.id.date_start_btn);
		search_btn = (Button) findViewById(R.id.search_button);
		detail_data_app = (Button) findViewById(R.id.chakan_apps_data);
		show_now_button=(Button)findViewById(R.id.shownow_button);
		show_now_button.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				liuliangzongbiaoti.setText(getResources().getString(R.string.now_liuliang_total));
			showdata();	
			}
		});
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		date_over_textview = (TextView) findViewById(R.id.date_over);
		date_over_textview.setText(sdf.format(new Date()));
		date_start_textview = (TextView) findViewById(R.id.date_start);
		date_start_textview.setText(sdf.format(new Date()));
		
		detail_data_app.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				Intent it = new Intent(Showmain.this, Appsdata.class);
				startActivity(it);
			}
		});
		date_over_btn.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				selectdate(date_over_textview);

			}
		});
		date_start_btn.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				selectdate(date_start_textview);

			}
		});
		search_btn.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				search_result();

			}
		});
	}

	/**
	 * 
	 * 方法说明:两个日期之间进行搜索
	 * 
	 */
	private void search_result() {
		long g3down = 0, g3up = 0, g3total = 0, rxdown = 0, txup = 0, alltotal = 0;
		String startdate = date_start_textview.getText().toString();
		String overdate = date_over_textview.getText().toString();
		Cursor r3gst = minsert.selectBettweenstart(startdate, overdate, RX3G);
		Cursor r3gov = minsert.selectBettweenstop(startdate, overdate, RX3G);
		Cursor t3gst = minsert.selectBettweenstart(startdate, overdate, TX3G);
		Cursor t3gov = minsert.selectBettweenstop(startdate, overdate, TX3G);
		Cursor r3gshutdown = minsert.selectbetweenday(RX3G, SHUTDOWN,
				startdate, overdate);
		Cursor t3gshutdown = minsert.selectbetweenday(TX3G, SHUTDOWN,
				startdate, overdate);
		liuliangzongbiaoti.setText(startdate   "至"   overdate   "的流量");
		if (r3gst.moveToNext()) {
			int number = r3gst.getColumnIndex("liuliang");
			g3down = r3gst.getLong(number);
			int number_id_r3s = r3gst.getColumnIndex("id");
			id_number_r = r3gst.getInt(number_id_r3s);
			if (Showmain.isLog) {
				Log.i("liuliang", "rxsearch_result_start_between_rx3g>>>"
						  g3down   ">>>>>>>uppstart");
			}
			if (r3gov.moveToNext()) {
				int number_id_r3o = r3gov.getColumnIndex("id");
				id_number_t = r3gov.getInt(number_id_r3o);
				if (id_number_r == id_number_t) {

				} else {
					int number1 = r3gov.getColumnIndex("liuliang");
					g3down = r3gov.getLong(number1) - g3down;
				}
			}
			while (r3gshutdown.moveToNext()) {
				int number2 = r3gshutdown.getColumnIndex("liuliang");
				g3down = r3gshutdown.getLong(number2)   g3down;
			}
			g3down = g3down / 1024 / 1024;
			mg_down_total.setText(g3down   "MB");
		}
		if (t3gst.moveToNext()) {
			int number3 = t3gst.getColumnIndex("liuliang");
			g3up = t3gst.getLong(number3);
			int number_id_t3s = t3gst.getColumnIndex("id");
			id_number_r = t3gst.getInt(number_id_t3s);

			if (t3gov.moveToNext()) {
				int number_id_t3o = t3gov.getColumnIndex("id");
				id_number_t = t3gov.getInt(number_id_t3o);
				if (id_number_r == id_number_t) {
				} else {
					int number4 = t3gov.getColumnIndex("liuliang");
					g3up = t3gov.getLong(number4) - g3up;
				}
			}
			while (t3gshutdown.moveToNext()) {
				int number5 = t3gshutdown.getColumnIndex("liuliang");
				g3up = g3up   t3gshutdown.getLong(number5);
			}
			g3up = g3up / 1024 / 1024;
			mg_up_total.setText(g3up   "MB");
			g3total = g3down   g3up;
			mg_total.setText(g3total   "MB");

		}
		Cursor rst = minsert.selectBettweenstart(startdate, overdate, RX);
		Cursor rov = minsert.selectBettweenstop(startdate, overdate, RX);
		Cursor tst = minsert.selectBettweenstart(startdate, overdate, TX);
		Cursor tov = minsert.selectBettweenstop(startdate, overdate, TX);
		Cursor rshutdown = minsert.selectbetweenday(RX, SHUTDOWN, startdate,
				overdate);
		Cursor tshutdown = minsert.selectbetweenday(TX, SHUTDOWN, startdate,
				overdate);
		if (rst.moveToNext()) {
			int number6 = rst.getColumnIndex("liuliang");
			rxdown = rst.getLong(number6);
			int number_id_rs = rst.getColumnIndex("id");
			id_number_r = rst.getInt(number_id_rs);

			if (Showmain.isLog) {
				Log.i("liuliang", "rxsearch_result_start_rxrx>>>"   rxdown
						  ">>>>>>>uppstart");
			}
			if (rov.moveToNext()) {
				int number_id_ro = rov.getColumnIndex("id");
				id_number_t = rst.getInt(number_id_ro);
				if (id_number_r == id_number_t) {
				} else {
					int number7 = rov.getColumnIndex("liuliang");
					rxdown = rov.getLong(number7) - rxdown;

					if (Showmain.isLog) {
						Log.i("liuliang", "rxsearch_result_rx_stop_ssss>>>>"
								  rxdown   ">>>>>>uppstart");
						Log.i("liuliang",
								"rxsearch_result_rx_stop_ssss_resa>>>>"
										  rov.getLong(number7)
										  ">>>>>>uppstart");
					}
				}
			}
			while (rshutdown.moveToNext()) {
				int number8 = rshutdown.getColumnIndex("liuliang");
				rxdown = rxdown   rshutdown.getLong(number8);
			}
			rxdown = rxdown / 1024 / 1024;
			mDown_total.setText(rxdown   "MB");
		}
		if (tst.moveToNext()) {
			int number9 = tst.getColumnIndex("liuliang");
			txup = tst.getLong(number9);
			int number_id_ts = tst.getColumnIndex("id");
			id_number_r = tst.getInt(number_id_ts);
			if (tov.moveToNext()) {
				int number_id_to = tst.getColumnIndex("id");
				id_number_t = tst.getInt(number_id_to);
				if (id_number_r == id_number_t) {
				} else {
					int number10 = tov.getColumnIndex("liuliang");
					txup = tov.getLong(number10) - txup;
				}
			}
			while (tshutdown.moveToNext()) {
				int number11 = tshutdown.getColumnIndex("liuliang");
				txup = txup   tshutdown.getLong(number11);
			}
			txup = txup / 1024 / 1024;
			mUp_total.setText(txup   "MB");
		}
		alltotal = rxdown   txup;
		mliuliang_total.setText(alltotal   "MB");
	}

	/**
	 * 
	 * 方法说明:显示时间
	 * 
	 */
	private void selectdate(final TextView tex) {
		new MyDatePickerDialog(this,
				new DatePickerDialog.OnDateSetListener() {
					public void onDateSet(DatePicker view, int year,
							int monthOfYear, int dayOfMonth) {
						String monthstr, daystr;
						monthOfYear = monthOfYear   1;
						if (monthOfYear < 10) {
							monthstr = ""   0   monthOfYear;
						} else {
							monthstr = ""   monthOfYear;
						}
						if (dayOfMonth < 10) {
							daystr = ""   0   dayOfMonth;
						} else {
							daystr = ""   dayOfMonth;
						}
						tex.setText(year   "-"   monthstr   "-"   daystr);

					}
				}, mcalendar.get(Calendar.YEAR), mcalendar.get(Calendar.MONTH),
				mcalendar.get(Calendar.DAY_OF_MONTH)).show();
	}

	/**
	 * 
	 * 方法说明:把数据插入到系统数据库中
	 * 
	 */
	private void datainsert() {
		long g3_down_total = TrafficStats.getMobileRxBytes(); // 获取通过Mobile连接收到的字节总数,这里Android123提示大家不包含WiFi
		long g3_up_total = TrafficStats.getMobileTxBytes(); // Mobile发送的总字节数
		long mrdown_total = TrafficStats.getTotalRxBytes(); // 获取总的接受字节数,包含Mobile和WiFi等
		long mtup_total = TrafficStats.getTotalTxBytes(); // 总的发送字节数,包含Mobile和WiFi等
		//检测wifi是否存在
		WifiManager wifi=(WifiManager)getSystemService(Context.WIFI_SERVICE);
		ConnectivityManager connect=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
		NetworkInfo info=connect.getActiveNetworkInfo();
		if(info!=null){
			if(wifi.isWifiEnabled()){
			minsert.insertNow(mrdown_total, RX, RXT, NORMAL);
			minsert.insertNow(mtup_total, TX, TXT, NORMAL);
			minsert.insertNow(g3_down_total, RXG, RX3G, NORMAL);
			minsert.insertNow(g3_up_total, TXG, TX3G, NORMAL);
			}
			if(info.getType()==ConnectivityManager.TYPE_MOBILE){
		minsert.insertNow(g3_down_total, RXG, RX3G, NORMAL);
		minsert.insertNow(g3_up_total, TXG, TX3G, NORMAL);}
		}
		}

	private void showdata() {
		long grx = 0, gtx = 0, rx = 0, tx = 0;
		Cursor rcursor = minsert.selectNow(RXG);
		Cursor rdaycursor = minsert.selectday(RXG, SHUTDOWN);
		Cursor tcursor = minsert.selectNow(TXG);
		Cursor tdaycursor = minsert.selectday(TXG, SHUTDOWN);
		if (rcursor.moveToNext()) {
			int rnumbor = rcursor.getColumnIndex("liuliang");
			grx = rcursor.getLong(rnumbor);
			while (rdaycursor.moveToNext()) {
				int rnumborday = rdaycursor.getColumnIndex("liuliang");
				grx = grx   rdaycursor.getLong(rnumborday);
			}
			grx = grx / 1024 / 1024;
			mg_down_total.setText(grx   "MB");
		}
		if (tcursor.moveToNext()) {
			int tnumbor = tcursor.getColumnIndex("liuliang");
			gtx = tcursor.getLong(tnumbor);
			while (tdaycursor.moveToNext()) {
				int tnumborday = tdaycursor.getColumnIndex("liuliang");
				gtx = gtx   tdaycursor.getLong(tnumborday);
			}
			gtx = gtx / 1024 / 1024;
			mg_up_total.setText(gtx   "MB");
		}
		long g_total = grx   gtx;
		mg_total.setText(g_total   "MB");
		Cursor mrcursor = minsert.selectNow(RX);
		Cursor mrdaycursor = minsert.selectday(RX, SHUTDOWN);
		Cursor mtcursor = minsert.selectNow(TX);
		Cursor mtdaycursor = minsert.selectday(TX, SHUTDOWN);
		if (mrcursor.moveToNext()) {
			int numberRx = mrcursor.getColumnIndex("liuliang");
			rx = mrcursor.getLong(numberRx);
			while (mrdaycursor.moveToNext()) {
				int numberRxDay = mrdaycursor.getColumnIndex("liuliang");
				rx = rx   mrdaycursor.getLong(numberRxDay);
			}
			rx = rx / 1024 / 1024;
			mDown_total.setText(rx   "MB");
		}
		if (mtcursor.moveToNext()) {
			int numberTx = mtcursor.getColumnIndex("liuliang");
			tx = mtcursor.getLong(numberTx);
			while (mtdaycursor.moveToNext()) {
				int numberTxDay = mtdaycursor.getColumnIndex("liuliang");
				tx = tx   mtdaycursor.getLong(numberTxDay);
			}
			tx = tx / 1024 / 1024;
			mUp_total.setText(tx   "MB");
		}
		long z_total = rx   tx;
		mliuliang_total.setText(z_total   "MB");
		mrcursor.close();
		mrdaycursor.close();
		mtcursor.close();
		mtdaycursor.close();
		rcursor.close();
		rdaycursor.close();
		tcursor.close();
		tdaycursor.close();
	}

	private void alarmsave() {
		Cursor alcursor = minsert.selectNow(flag);
		if (alcursor.moveToNext()) {

		} else {
			calendar.set(Calendar.HOUR_OF_DAY, 23);
			calendar.set(Calendar.MINUTE, 50);
			AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
			Intent it = new Intent("SAVE_LIULIANG_EVERYDAY");
			PendingIntent peit = PendingIntent.getBroadcast(
					getApplicationContext(), 0, it, 0);
			alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar
					.getTimeInMillis(), 86400 * 1000, peit);
			minsert.insertbiaozhi(flag, flagname);
			if (Showmain.isLog) {
				Log.i("liuliang", "alarmmangerstart>>>>>>>>>>uppstart");
			}
		}

	}

}

标签: 统计

实例下载地址

android 3g流量统计 实例源码下载

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警