手中一个项目要获取到当前应用的流量值,Android 2.2和之后的api中有一个trafficstats类,使用该类就能获取应用的流量信息的,由于我们的项目是要向下兼容到1.5
所以就悲剧了,只能自己去实现该方法了,后查找资料发现应用的流量信息是存放在/proc/uid_stat/uid(uid为进程的UID)目录下,在该目录下有两个文件tcp_snd(发送字
所以就悲剧了,只能自己去实现该方法了,后查找资料发现应用的流量信息是存放在/proc/uid_stat/uid(uid为进程的UID)目录下,在该目录下有两个文件tcp_snd(发送字
节数)和tcp_rcv(接收字节数)这样需要做的就简单了,只要读取本地文件就搞定了,
public static long getTCP_RCV(int uid){
File file1 ;
FileInputStream in;
file1 = new File("/proc/uid_stat/"+uid+"/tcp_rcv");
if(!file1.exists()){
return 0;
}
try {
in = new FileInputStream(file1);
StringBuffer sb = new StringBuffer();
int i=0;
byte[] s = new byte[1024*4];
while((i=in.read(s))!=-1){
sb.append(new String(s,0,i));
}
return Long.parseLong(sb.toString());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return 0;
}