Android编程实现简单流量管理功能实例
本文实例讲述了Android编程实现简单流量管理功能的方法。分享给大家供大家参考,具体如下:
packagecn.itcast.mobilesafe.ui; importjava.util.List; importandroid.app.Activity; importandroid.content.Intent; importandroid.content.pm.PackageManager; importandroid.content.pm.ResolveInfo; importandroid.graphics.drawable.Drawable; importandroid.net.TrafficStats; importandroid.os.Bundle; importandroid.view.View; importandroid.view.ViewGroup; importandroid.widget.BaseAdapter; importandroid.widget.ImageView; importandroid.widget.ListView; importandroid.widget.TextView; importcn.itcast.mobilesafe.R; importcn.itcast.mobilesafe.util.TextForMater; publicclassTrafficManagerActivityextendsActivity{ privateTextView_3gTotal; privateTextViewwifiTotal; privateListViewcontent; privateStringmobileTraffic; privateStringwifiTraffic; privatePackageManagerpm; privateTrafficAdapteradapter; @Override protectedvoidonCreate(BundlesavedInstanceState){ 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=newTrafficAdapter(); content.addHeaderView(View.inflate(this,R.layout.traffic_title,null)); content.setAdapter(adapter); } privatevoidsetTotalData(){ longmobileRx=TrafficStats.getMobileRxBytes(); longmobileTx=TrafficStats.getMobileTxBytes(); longtotalRx=TrafficStats.getTotalRxBytes(); longtotalTx=TrafficStats.getTotalTxBytes(); longwifiRx=totalRx-mobileRx; longwifiTx=totalTx-mobileTx; mobileTraffic=TextForMater.getDataSize(mobileRx+mobileTx); _3gTotal.setText(mobileTraffic); wifiTraffic=TextForMater.getDataSize(wifiTx+wifiRx); wifiTotal.setText(wifiTraffic); } privateclassTrafficAdapterextendsBaseAdapter{ List<ResolveInfo>resolveInfos; publicTrafficAdapter(){ super(); Intentintent=newIntent(); intent.setAction("android.intent.action.MAIN"); intent.addCategory("android.intent.category.LAUNCHER"); resolveInfos=pm.queryIntentActivities(intent,PackageManager.MATCH_DEFAULT_ONLY); } @Override publicintgetCount(){ returnresolveInfos.size(); } @Override publicObjectgetItem(intposition){ returnposition; } @Override publiclonggetItemId(intposition){ returnposition; } @Override publicViewgetView(intposition,ViewconvertView,ViewGroupparent){ Viewview; if(null==convertView){ view=View.inflate(getApplicationContext(),R.layout.traffic_item,null); }else{ view=convertView; } ViewHolderholder=newViewHolder(); 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); ResolveInfoinfo=resolveInfos.get(position); StringappName=info.loadLabel(pm).toString(); holder.tv_traffic_name.setText(appName); Drawableicon=info.loadIcon(pm); holder.iv_traffic_icon.setImageDrawable(icon); intuid=info.activityInfo.applicationInfo.uid; holder.tv_traffic_rx.setText(TextForMater.getDataSize(TrafficStats.getUidRxBytes(uid))); holder.tv_traffic_tx.setText(TextForMater.getDataSize(TrafficStats.getUidTxBytes(uid))); returnview; } } staticclassViewHolder{ ImageViewiv_traffic_icon; TextViewtv_traffic_name; TextViewtv_traffic_tx; TextViewtv_traffic_rx; } }
traffic_manager.xml
<?xmlversion="1.0"encoding="utf-8"?> <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TableLayout android:layout_width="fill_parent" android:layout_height="wrap_content"> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:text="2G/3G总流量"/> <TextView android:id="@+id/_3gTotal" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1"/> </TableRow> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:text="Wifi总流量"/> <TextView android:id="@+id/wifiTotal" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1"/> </TableRow> </TableLayout> <SlidingDrawer 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"> <ImageView android:id="@id/handle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/notification"/> <ListView android:id="@id/content" android:layout_width="fill_parent" android:layout_height="fill_parent"> </ListView> </SlidingDrawer> </LinearLayout>
traffic_manager_item.xml
<?xmlversion="1.0"encoding="utf-8"?> <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal"> <ImageView android:id="@+id/iv_traffic_icon" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:src="@drawable/ic_launcher"/> <TextView 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="名称"/> <TextView 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="上传"/> <TextView 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="下载"/> </LinearLayout>
traffic_title.xml
<?xmlversion="1.0"encoding="utf-8"?> <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal"> <TextView android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_horizontal" android:text="图标"/> <TextView android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_horizontal" android:text="名称"/> <TextView android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_horizontal" android:text="上传"/> <TextView android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_horizontal" android:text="下载"/> </LinearLayout>
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android通信方式总结》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。