得到用户手机中的程序使用流量的信息

来源:互联网 发布:如何理解汉诺塔算法 编辑:程序博客网 时间:2024/05/11 02:59
package com.study.mobilesafe.engine;import java.util.ArrayList;import java.util.List;import android.content.Context;import android.content.pm.ApplicationInfo;import android.content.pm.PackageInfo;import android.content.pm.PackageManager;import android.graphics.drawable.Drawable;import android.net.TrafficStats;import com.study.mobilesafe.domain.TrafficInfo;public class TrafficProvider {// TrafficStats.getMobileRxBytes();//手机接收到的流量 不包含WIFI// TrafficStats.getMobileTxBytes();//手机上传的流量 不包含WIFI// TrafficStats.getTotalRxBytes();//手机接收到的总流量 包含WIFI// TrafficStats.getTotalTxBytes();//手机上传的流量 包含WIFI//// TrafficStats.getUidRxBytes(uid);//根据apk号获得该程序的接收到的流量// TrafficStats.getUidTxBytes(uid);//根据apk号获得该程序的上传的流量// TrafficStats.getMobileRxBytes();public static List<TrafficInfo> getAppInfos(Context context) {List<TrafficInfo> infos = new ArrayList<TrafficInfo>();PackageManager manager = context.getPackageManager();List<PackageInfo> installedPackages = manager.getInstalledPackages(0);for (PackageInfo packageInfo : installedPackages) {// 加载Application节点ApplicationInfo applicationInfo = packageInfo.applicationInfo;// 来到application节点String name = applicationInfo.loadLabel(manager).toString();Drawable icon = applicationInfo.loadIcon(manager);// 获取是不是用户程序boolean isUser;int flags = applicationInfo.flags;// 获取应用程序的标签if ((flags & ApplicationInfo.FLAG_SYSTEM) == ApplicationInfo.FLAG_SYSTEM) {// 系统程序isUser = false;} else {isUser = true;}long rxBytes = TrafficStats.getUidRxBytes(applicationInfo.uid);long txBytes = TrafficStats.getUidTxBytes(applicationInfo.uid);TrafficInfo info = new TrafficInfo(name, icon, isUser, rxBytes,txBytes);infos.add(info);}return infos;}}

0 0