2012-09-23 62 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); 
    } 
}; 

希望这可以帮助别人。