2015-04-16 27 views
5

Rozwijam aplikację, która pozwala sprawdzić statystyki ruchu Wi-Fi i mobilnego na Androidzie. To w jaki sposób uzyskać Statystyki:Otrzymuj statystyki ruchu Wi-Fi android

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

Niestety wifiStats tutaj wydaje się być czymś więcej niż tylko wifi bo nawet kiedy wyłączyć wifi na moim smartfonie, robi mi mnóstwo danych. Myślę, że getTotalRxBytes() i getTotalTxBytes() liczą bajty transmitowane i odbierane we wszystkich interfejsach sieciowych.

Szukałem dużo w Internecie, jak uzyskać statystyki ruchu tylko na Wi-Fi, ale nie mogę znaleźć sposobu.

Z chęcią przyjmę każdą pomoc.

Odpowiedz

6

Miałem ten sam problem kilka lat temu i rozwiązałem ten problem, czytając bezpośrednio pliki systemowe.

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; 
} 

Mam nadzieję, że pomoże!

+0

Dzięki! Tego właśnie szukałem! – AlexSC