获取wifi流量统计android

Ale*_*xSC 5 java android traffic wifi

我正在开发一个应用程序,它允许检查Android上的WiFi和移动流量统计.这就是我获取统计数据的方式:

long mobileStats = TrafficStats.getMobileRxBytes() + TrafficStats.getMobileTxBytes();
long wifiStats = TrafficStats.getTotalRxBytes() + TrafficStats.getTotalTxBytes() - mobileStats;
Run Code Online (Sandbox Code Playgroud)

不幸的是,wifiStats这里似乎不仅仅是wifi,因为即使我在我的智能手机上禁用wifi,它也会获得大量的数据.我认为getTotalRxBytes()getTotalTxBytes()计算在所有网络接口上传输和接收的字节数.

我在网上搜索了很多如何只在wifi上获取流量统计信息,但我找不到办法.

我很乐意接受任何帮助.

Jua*_*edo 6

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

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;
}
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你!