我想统计单个应用程序的wifi流量。这个作为一个数值
然后我在统计单个应用程序的流量,这个也作为一个数值
然后显示出来

解决方案 »

  1.   

    level 8开始有一个api
    trafficstats类里,有API
      

  2.   


    // 获取所有安装在手机上的应用软件的信息 ,并且获取这些软件里面的权限信息
    List<PackageInfo> packinfos = pm
    .getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES
    | PackageManager.GET_PERMISSIONS);
    for (PackageInfo info : packinfos) {
    String[] premissions = info.requestedPermissions;
    if (premissions != null && premissions.length > 0) {
    for (String premission : premissions) {
    if("android.permission.INTERNET".equals(premission)){
    //System.out.println(info.packageName+"访问网络");
    int uid = info.applicationInfo.uid;
    long rx = TrafficStats.getUidRxBytes(uid);
    long tx = TrafficStats.getUidTxBytes(uid);
    if(rx<0||tx<0){
    System.out.println(info.packageName + "没有产生流量");
    }else{
    System.out.println(info.packageName+"的流量信息:");
    System.out.println("下载的流量"+Formatter.formatFileSize(this, rx));
    System.out.println("上传的流量"+Formatter.formatFileSize(this,tx ));
    }
    }
    }
    System.out.println("---------");
    }
    }
      

  3.   

    我需要统计单个应用的wifi流量,这些都是2G或者3G的流量,那位大牛懂得统计单个应用的wifi流量