android流量管理源码,Android编程实现简单流量管理功能实例

本文实例讲述了Android编程实现简单流量管理功能的方法。分享给大家供大家参考,具体如下:

package cn.itcast.mobilesafe.ui;

import java.util.List;

import android.app.Activity;

import android.content.Intent;

import android.content.pm.PackageManager;

import android.content.pm.ResolveInfo;

import android.graphics.drawable.Drawable;

import android.net.TrafficStats;

import android.os.Bundle;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.ImageView;

import android.widget.ListView;

import android.widget.TextView;

import cn.itcast.mobilesafe.R;

import cn.itcast.mobilesafe.util.TextForMater;

public class TrafficManagerActivity extends Activity {

private TextView _3gTotal;

private TextView wifiTotal;

private ListView content;

private String mobileTraffic;

private String wifiTraffic;

private PackageManager pm;

private TrafficAdapter adapter;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

pm = getPackageManager();

setContentView(R.layout.traffic_manager);

_3gTotal = (TextView) this.findViewById(R.id._3gTotal);

wifiTotal = (TextView) this.findViewById(R.id.wifiTotal);

content = (ListView) this.findViewById(R.id.content);

setTotalData();

adapter = new TrafficAdapter();

content.addHeaderView(View.inflate(this, R.layout.traffic_title, null));

content.setAdapter(adapter);

}

private void setTotalData() {

long mobileRx = TrafficStats.getMobileRxBytes();

long mobileTx = TrafficStats.getMobileTxBytes();

long totalRx = TrafficStats.getTotalRxBytes();

long totalTx = TrafficStats.getTotalTxBytes();

long wifiRx = totalRx - mobileRx;

long wifiTx = totalTx - mobileTx;

mobileTraffic = TextForMater.getDataSize(mobileRx + mobileTx);

_3gTotal.setText(mobileTraffic);

wifiTraffic = TextForMater.getDataSize(wifiTx + wifiRx);

wifiTotal.setText(wifiTraffic);

}

private class TrafficAdapter extends BaseAdapter{

List resolveInfos ;

public TrafficAdapter() {

super();

Intent intent = new Intent();

intent.setAction("android.intent.action.MAIN");

intent.addCategory("android.intent.category.LAUNCHER");

resolveInfos = pm.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);

}

@Override

public int getCount() {

return resolveInfos.size();

}

@Override

public Object getItem(int position) {

return position;

}

@Override

public long getItemId(int position) {

return position;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

View view ;

if(null == convertView){

view = View.inflate(getApplicationContext(), R.layout.traffic_item, null);

}else{

view = convertView;

}

ViewHolder holder = new ViewHolder();

holder.iv_traffic_icon = (ImageView) view.findViewById(R.id.iv_traffic_icon);

holder.tv_traffic_name = (TextView) view.findViewById(R.id.tv_traffic_name);

holder.tv_traffic_tx = (TextView) view.findViewById(R.id.tv_traffic_tx);

holder.tv_traffic_rx = (TextView) view.findViewById(R.id.tv_traffic_rx);

ResolveInfo info = resolveInfos.get(position);

String appName = info.loadLabel(pm).toString();

holder.tv_traffic_name.setText(appName);

Drawable icon = info.loadIcon(pm);

holder.iv_traffic_icon.setImageDrawable(icon);

int uid = info.activityInfo.applicationInfo.uid;

holder.tv_traffic_rx.setText(TextForMater.getDataSize(TrafficStats.getUidRxBytes(uid)));

holder.tv_traffic_tx.setText(TextForMater.getDataSize(TrafficStats.getUidTxBytes(uid)));

return view;

}

}

static class ViewHolder{

ImageView iv_traffic_icon;

TextView tv_traffic_name;

TextView tv_traffic_tx;

TextView tv_traffic_rx;

}

}

traffic_manager.xml

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

android:layout_width="fill_parent"

android:layout_height="wrap_content" >

android:layout_width="fill_parent"

android:layout_height="wrap_content" >

android:layout_width="0dip"

android:layout_height="wrap_content"

android:layout_weight="1"

android:text="2G/3G总流量" />

android:id="@+id/_3gTotal"

android:layout_width="0dip"

android:layout_height="wrap_content"

android:layout_weight="1" />

android:layout_width="fill_parent"

android:layout_height="wrap_content" >

android:layout_width="0dip"

android:layout_height="wrap_content"

android:layout_weight="1"

android:text="Wifi总流量" />

android:id="@+id/wifiTotal"

android:layout_width="0dip"

android:layout_height="wrap_content"

android:layout_weight="1" />

android:id="@+id/ll_sd_traffic"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:content="@+id/content"

android:handle="@+id/handle"

android:orientation="vertical" >

android:id="@id/handle"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/notification" />

android:id="@id/content"

android:layout_width="fill_parent"

android:layout_height="fill_parent" >

traffic_manager_item.xml

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:gravity="center_vertical"

android:orientation="horizontal" >

android:id="@+id/iv_traffic_icon"

android:layout_width="0dip"

android:layout_height="wrap_content"

android:layout_weight="1"

android:src="@drawable/ic_launcher" />

android:id="@+id/tv_traffic_name"

android:layout_width="0dip"

android:layout_height="wrap_content"

android:layout_weight="1"

android:gravity="center_horizontal"

android:text="名称" />

android:id="@+id/tv_traffic_tx"

android:layout_width="0dip"

android:layout_height="wrap_content"

android:layout_weight="1"

android:gravity="center_horizontal"

android:text="上传" />

android:id="@+id/tv_traffic_rx"

android:layout_width="0dip"

android:layout_height="wrap_content"

android:layout_weight="1"

android:gravity="center_horizontal"

android:text="下载" />

traffic_title.xml

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:gravity="center_vertical"

android:orientation="horizontal" >

android:layout_width="0dip"

android:layout_height="wrap_content"

android:layout_weight="1"

android:gravity="center_horizontal"

android:text="图标" />

android:layout_width="0dip"

android:layout_height="wrap_content"

android:layout_weight="1"

android:gravity="center_horizontal"

android:text="名称" />

android:layout_width="0dip"

android:layout_height="wrap_content"

android:layout_weight="1"

android:gravity="center_horizontal"

android:text="上传" />

android:layout_width="0dip"

android:layout_height="wrap_content"

android:layout_weight="1"

android:gravity="center_horizontal"

android:text="下载" />

希望本文所述对大家Android程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值