android 关于2.2版本之前的流量统计
不是原帖的原帖地址: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版本之前的流量统计相关推荐
- android app 流量统计
https://blog.csdn.net/yzy9508/article/details/48300265 | android 数据流量统计 - CSDN博客 https://blog.csdn.n ...
- android 流量统计助手,流量统计 My Data Manager v7.3.1
更新时间:2017-02-19 资费提示:免费版 当前版本:7.3.1 软件语言:中文 软件类别:计费统计 软件大小:7.24 MB 适用固件:2.2及更高固件 内置广告:没有广告 开发商:Mobid ...
- Android流量统计TrafficStats类
对于Android流量统计来说在2.2版中新加入了TrafficStats类可以轻松获取,其实本身TrafficStats类也是读取Linux提供的文件对象系统类型的文本进行解析. android.n ...
- Xamarin Android项目提示SDK版本太老
Xamarin Android项目提示SDK版本太老 错误信息:The installed Android SDK is too old.Version 24.3.4 or newer is requ ...
- android 获取apk的版本信息
今天,简单讲讲android如何获取apk的版本信息. 这个很简单,但是之前还是查找了资料,所以记录一下. 一.应用程序得到自己的版本信息 /*** 得到当前应用版本名称的方法* * @param c ...
- 我的Android进阶之旅------Android中高低API版本兼容使用@TargetApi或者@SuppressLint(NewApi)...
Android中高低API版本兼容使用@TargetApi或者@SuppressLint("NewApi") 例如:AndroidManifest.xml中,我们配置了sdk版本的 ...
- android页面统计代码,android流量统计(示例代码)
android.net.TrafficStats类中,提供了多种静态方法,可以直接调用获取,返回类型均为long型,如果返回等于-1代表 UNSUPPORTED 当前设备不支持统计. static l ...
- 重温1 Android系统架构及版本
1.Linux内核层(Linux Kernel) 为Android设备的各种硬件提供了底层驱动,Display Driver/Camera Driver/Bluetooth Driver/Flash ...
- android 流量统计工具,Android 统计应用流量的使用情况
Android 获取应用流量的使用情况有两种方法 TrafficStats NetworkStatsManager 是Android 6.0(API23)中新增加的类 这次我们使用的是第二种方法,记录 ...
最新文章
- 【java】快速复制数组方法arraycopy的使用
- Visual Studio Code启动项目
- ORACLE如何删除归档日志文件
- Web前端遍历对象应该如何操作呢?
- mysql linux root密码忘记了怎么办,linux下忘记mysql的root密码解决办法 | 严佳冬
- 如何保证消息队列的高可用啊
- python hdf5 —— h5py
- c语言什么是关键字,c语言关键字是什么
- 火狐firefox浏览器不能播放视频,但别的浏览器可以。
- 6亿债务年底还完,老罗“真还传”即将完结
- 近期看到的很有意思的文章
- 即构SDK新增变声、立体声(3D环绕)、混响三大功能
- 分布式-全局唯一id
- 图的存储结构之边集数组
- Win10任务栏图标一直刷新的解决方法
- 前端培训的机构哪个好,这五类人最适合转Web前端
- SEO--搜索引擎优化(如何让你的网站排名靠前)
- 图说不为人知的IT传奇故事-3-硅谷DNA创造者HP
- 重学Android基础系列篇(二):泛型
- ITK——5. 利用ITK自身的多线程加速filter计算
热门文章
- java连接linux服务器执行shell命令(框架分析+推荐)
- 大四报了个天价培训班,变成量产型炮灰工程师
- 【HDU 3400】Line belt(三分法)
- C++学习笔记-----operator=函数处理自赋值
- Python解释器工作原理与jit技术
- php json返回sql,php – 如何从我的特定SQL查询中返回json?
- mysql语句的左外链接_MySQL中的JOIN连接
- 《Linux内核设计与实现》读书笔记(十二)- 内存管理
- pytorch 之 torch.max() 和 torch.min() 记录
- 列表初始化和赋值初始化的使用注意事项