2015-04-16 4 views
5

मैं एक ऐप विकसित कर रहा हूं जो एंड्रॉइड पर वाईफ़ाई और मोबाइल ट्रैफ़िक आंकड़ों की जांच करने की अनुमति देता है।वाईफ़ाई ट्रैफ़िक आंकड़े प्राप्त करें एंड्रॉइड

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

दुर्भाग्य से, wifiStats यहाँ वाईफ़ाई केवल क्योंकि तब भी जब मैं अपने स्मार्टफोन पर वाईफ़ाई को निष्क्रिय, यह मेरे डेटा की टन हो जाता है की तुलना में अधिक हो रहा है: यह कैसे मैं आँकड़े मिलता है। मुझे लगता है कि getTotalRxBytes() और getTotalTxBytes() सभी नेटवर्क इंटरफेस पर प्रसारित और प्राप्त बाइटों की गणना कर रहे हैं।

मैंने वेब पर बहुत कुछ खोजा है कि वाईफाई पर ट्रैफिक आंकड़े कैसे प्राप्त करें लेकिन मुझे कोई रास्ता नहीं मिल रहा है।

मैं खुशी से किसी भी मदद स्वीकार करता हूं।

उत्तर

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

उम्मीद है कि यह मदद करता है!

+0

धन्यवाद! यही वह था जिसे मैं ढूंढ रहा था! – AlexSC

संबंधित मुद्दे