不是原帖的原帖地址:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=201729&extra=page%3D3&page=1

2.2以前流量统计可以使用
package com.AAJM;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import android.util.Log;

public class TrafficStatsLL {
/**
* 获取网络流量信息
* 利用读取系统文件的方法来进行获取网络流量
* 主要意义在于可以应用于2.2以前的没有提供TrafficStats接口的版本
* @author   cxy
* @Date         2011-8-4
*/
        public static String readInStream(FileInputStream inStream){ 
                  try { 
                   ByteArrayOutputStream outStream = new ByteArrayOutputStream(); 
                   byte[] buffer = new byte[1024]; 
                   int length = -1; 
                   while((length = inStream.read(buffer)) != -1 ){ 
                    outStream.write(buffer, 0, length); 
                   } 
                   outStream.close(); 
                   inStream.close(); 
                   return outStream.toString(); 
                  } catch (IOException e){ 
                   Log.i("FileTest", e.getMessage()); 
                  } 
                  return null; 
        } 
        获取手机2G/3G的下载流量//
        public static long getMobileRxBytes()
        {
                long ReturnLong=0;                                                                                                //查询到的结果
                try {
                        File file = new File("/proc/net/dev"); 
                        FileInputStream inStream = new FileInputStream(file);
                        String a=readInStream(inStream);
                        int startPos=a.indexOf("rmnet0:");
                        a=a.substring(startPos);
                        Pattern p=Pattern.compile(" \\d+ ");
                    Matcher m=p.matcher(a);
                    while(m.find()){
                            ReturnLong=Long.parseLong(m.group().trim());
                            break;
                    }
                          
                } catch (FileNotFoundException e1) {
                        e1.printStackTrace();
                } 
                return ReturnLong;
        }
        
获取手机2G/3G的上传流量//
        public static long getMobileTxBytes()
        {
                long ReturnLong=0;                                                                                                //查询到的结果
                try {
                        int count=0;                                                                                                //返回结果时的计数器
                        File file = new File("/proc/net/dev"); 
                        FileInputStream inStream = new FileInputStream(file);
                        String a=readInStream(inStream);
                        int startPos=a.indexOf("rmnet0:");
                        a=a.substring(startPos);
                        Pattern p=Pattern.compile(" \\d+ ");
                    Matcher m=p.matcher(a);
                    while(m.find()){
                            if(count==8)
                            {
                                    ReturnLong=Long.parseLong(m.group().trim());
                                    break;
                            }
                            count++;
                            
                    }
                          
                } catch (FileNotFoundException e1) {
                        e1.printStackTrace();
                } 
                return ReturnLong;
        }
        
获取手机Wifi的下载流量//
        public static long getWifiRxBytes()
        {
                long ReturnLong=0;                                                                                                //查询到的结果
                try {
                        File file = new File("/proc/net/dev"); 
                        FileInputStream inStream = new FileInputStream(file);
                        String a=readInStream(inStream);
                        int startPos=a.indexOf("wlan0:");
                        a=a.substring(startPos);
                        Pattern p=Pattern.compile(" \\d+ ");
                    Matcher m=p.matcher(a);
                    while(m.find()){
                                    ReturnLong=Long.parseLong(m.group().trim());
                                    break;
                    }
                          
                } catch (FileNotFoundException e1) {
                        e1.printStackTrace();
                } 
                return ReturnLong;
        }
        
        
获取手机Wifi的上传流量//
        public static long getWifiTxBytes()
        {
                long ReturnLong=0;                                                                                                //查询到的结果
                try {
                        int count=0;                                                                                                //返回结果时的计数器
                        File file = new File("/proc/net/dev"); 
                        FileInputStream inStream = new FileInputStream(file);
                        String a=readInStream(inStream);
                        int startPos=a.indexOf("wlan0:");
                        a=a.substring(startPos);
                        Pattern p=Pattern.compile(" \\d+ ");
                    Matcher m=p.matcher(a);
                    while(m.find()){
                            if(count==8)
                            {
                                    ReturnLong=Long.parseLong(m.group().trim());
                                    break;
                            }
                            count++;
                    }
                          
                } catch (FileNotFoundException e1) {
                        e1.printStackTrace();
                } 
                return ReturnLong;
        }
        
根据uid获取进程的下载流量//
        public static long getUidRxBytes(int uid)
        {
                long ReturnLong=0;                                                                                                //查询到的结果
                
                        try {
                                String url="/proc/uid_stat/"+String.valueOf(uid)+"/tcp_rcv";
                                File file = new File(url); 
                                FileInputStream inStream;
                                if(file.exists())
                                {
                                        inStream = new FileInputStream(file);
                                        ReturnLong=Long.parseLong(readInStream(inStream).trim());
                                }
                        } catch (FileNotFoundException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        }
                        
                        
                        
                        //Log.i(url+"文件并不存在","可能原因为该文件在开机后并没有上过网,所以没有流量记录");
                return ReturnLong;
        }

根据uid获取进程的上传流量//
        public static long getUidTxBytes(int uid)
        {
                long ReturnLong=0;                                                                                                //查询到的结果
                try {
                        String url="/proc/uid_stat/"+String.valueOf(uid)+"/tcp_snd";
                        File file = new File(url);
                        if(file.exists())
                        {
                                FileInputStream inStream = new FileInputStream(file);
                                ReturnLong=Long.parseLong(readInStream(inStream).trim());
                        }
                } catch (FileNotFoundException e1) {
                        e1.printStackTrace();
                } 
                return ReturnLong;
        }
}

android 关于2.2版本之前的流量统计相关推荐

  1. android app 流量统计

    https://blog.csdn.net/yzy9508/article/details/48300265 | android 数据流量统计 - CSDN博客 https://blog.csdn.n ...

  2. android 流量统计助手,流量统计 My Data Manager v7.3.1

    更新时间:2017-02-19 资费提示:免费版 当前版本:7.3.1 软件语言:中文 软件类别:计费统计 软件大小:7.24 MB 适用固件:2.2及更高固件 内置广告:没有广告 开发商:Mobid ...

  3. Android流量统计TrafficStats类

    对于Android流量统计来说在2.2版中新加入了TrafficStats类可以轻松获取,其实本身TrafficStats类也是读取Linux提供的文件对象系统类型的文本进行解析. android.n ...

  4. Xamarin Android项目提示SDK版本太老

    Xamarin Android项目提示SDK版本太老 错误信息:The installed Android SDK is too old.Version 24.3.4 or newer is requ ...

  5. android 获取apk的版本信息

    今天,简单讲讲android如何获取apk的版本信息. 这个很简单,但是之前还是查找了资料,所以记录一下. 一.应用程序得到自己的版本信息 /*** 得到当前应用版本名称的方法* * @param c ...

  6. 我的Android进阶之旅------Android中高低API版本兼容使用@TargetApi或者@SuppressLint(NewApi)...

    Android中高低API版本兼容使用@TargetApi或者@SuppressLint("NewApi") 例如:AndroidManifest.xml中,我们配置了sdk版本的 ...

  7. android页面统计代码,android流量统计(示例代码)

    android.net.TrafficStats类中,提供了多种静态方法,可以直接调用获取,返回类型均为long型,如果返回等于-1代表 UNSUPPORTED 当前设备不支持统计. static l ...

  8. 重温1 Android系统架构及版本

    1.Linux内核层(Linux Kernel) 为Android设备的各种硬件提供了底层驱动,Display Driver/Camera Driver/Bluetooth Driver/Flash ...

  9. android 流量统计工具,Android 统计应用流量的使用情况

    Android 获取应用流量的使用情况有两种方法 TrafficStats NetworkStatsManager 是Android 6.0(API23)中新增加的类 这次我们使用的是第二种方法,记录 ...

最新文章

  1. 【java】快速复制数组方法arraycopy的使用
  2. Visual Studio Code启动项目
  3. ORACLE如何删除归档日志文件
  4. Web前端遍历对象应该如何操作呢?
  5. mysql linux root密码忘记了怎么办,linux下忘记mysql的root密码解决办法 | 严佳冬
  6. 如何保证消息队列的高可用啊
  7. python hdf5 —— h5py
  8. c语言什么是关键字,c语言关键字是什么
  9. 火狐firefox浏览器不能播放视频,但别的浏览器可以。
  10. 6亿债务年底还完,老罗“真还传”即将完结
  11. 近期看到的很有意思的文章
  12. 即构SDK新增变声、立体声(3D环绕)、混响三大功能
  13. 分布式-全局唯一id
  14. 图的存储结构之边集数组
  15. Win10任务栏图标一直刷新的解决方法
  16. 前端培训的机构哪个好,这五类人最适合转Web前端
  17. SEO--搜索引擎优化(如何让你的网站排名靠前)
  18. 图说不为人知的IT传奇故事-3-硅谷DNA创造者HP
  19. 重学Android基础系列篇(二):泛型
  20. ITK——5. 利用ITK自身的多线程加速filter计算

热门文章

  1. java连接linux服务器执行shell命令(框架分析+推荐)
  2. 大四报了个天价培训班,变成量产型炮灰工程师
  3. 【HDU 3400】Line belt(三分法)
  4. C++学习笔记-----operator=函数处理自赋值
  5. Python解释器工作原理与jit技术
  6. php json返回sql,php – 如何从我的特定SQL查询中返回json?
  7. mysql语句的左外链接_MySQL中的JOIN连接
  8. 《Linux内核设计与实现》读书笔记(十二)- 内存管理
  9. pytorch 之 torch.max() 和 torch.min() 记录
  10. 列表初始化和赋值初始化的使用注意事项