获取wifi流量统计android

我正在开发一个应用程序,它可以检查android上的wifi和移动流量统计信息。这就是我得到的统计信息:

long mobileStats = TrafficStats.getMobileRxBytes() + TrafficStats.getMobileTxBytes();

long wifiStats = TrafficStats.getTotalRxBytes() + TrafficStats.getTotalTxBytes() - mobileStats;

不幸的是,wifiStats这似乎不仅仅是wifi,因为即使我在智能手机上禁用wifi,它也会为我带来大量数据。我认为,getTotalRxBytes()并且getTotalTxBytes()正在计算所有网络接口上发送和接收的字节数。

我在网上搜索了很多关于如何仅在wifi上获取流量统计信息的方法,但我找不到方法。

我很乐意接受任何帮助。

回答:

几年前,我遇到了同样的问题,并通过直接读取系统文件来解决了这个问题。

private final String RX_FILE = "/sys/class/net/wlan0/statistics/rx_bytes";

private final String TX_FILE = "/sys/class/net/wlan0/statistics/tx_bytes";

private long readFile(String fileName){

File file = new File(fileName);

BufferedReader br = null;

long bytes = 0;

try{

br = new BufferedReader(new FileReader(file));

String line = "";

line = br.readLine();

bytes = Long.parseLong(line);

} catch (Exception e){

e.printStackTrace();

return 0;

} finally{

if (br != null)

try {

br.close();

} catch (IOException e) {

e.printStackTrace();

}

}

return bytes;

}

希望能帮助到你!

以上是 获取wifi流量统计android 的全部内容, 来源链接: utcz.com/qa/423211.html

回到顶部