2012-09-23 100 views
0

我試圖從我的應用程序中找出WiFi是否正在使用; 在不僅僅是連接,但實際上目前正在下載或上傳。 Android(4.0+)似乎意識到這一點,因爲無線網絡圖標在傳輸數據時發生變化。任何方式來訪問這些信息?Android獲得wifi活動

在此先感謝。

回答

0

經過一番研究,我找到了TrafficStats類。不知道這是多麼可靠,但這裏是我的代碼:

boolean isWifiInUse; 
long lastTx,lastRx; 
Runnable TestWifi = new Runnable() { 

    public void run() { 
     long cRx = TrafficStats.getTotalRxBytes() - TrafficStats.getMobileRxBytes(); 
     long cTx = TrafficStats.getTotalTxBytes() - TrafficStats.getMobileTxBytes(); 
     if (cTx - lastTx != 0 || cRx - lastRx != 0) 
     { 
      if (!isWifiInUse) 
       isWifiInUse = true; 

     } 
     else if (isWifiInUse) 
     { 
      isWifiInUse = false; 
      //ShowToast("Data no longer in use"); 
     } 
     lastRx = cRx; 
     lastTx = cTx; 
     hand.postDelayed(this, 1000); 
    } 
}; 

希望這可以幫助別人。