2012-02-06 51 views
3

使用Android TelephonyManager應用程序可以通過蜂窩網絡獲取數據活動的狀態。例如,活動正在進入,正在進行,或兩者兼而有之。我想知道是否有人知道在使用Wifi連接設備時獲取相同信息的方法?在冰淇淋三明治(4.0.3,我認爲)他們有這個信息可用於Wifi和電話,但在此之前它只是用於電話(WifiManager沒有更新這個信息,直到冰淇淋三明治發佈)。android wifi active data transfer

基本上,我希望能夠檢查數據是否正在通過手機/平板電腦在連接到Wifi網絡(而不僅僅是Wifi連接)時被主動傳輸。這些數據不一定要由我發起;我只想知道數據是否正在積極移動。

有沒有人有任何想法這可以實現?我對Android相當陌生,並希望這些信息能夠確保我的應用程序不會做任何不好的事情。預先感謝您的任何想法。

回答

1

我也一直在尋找這個,我還沒有得到完美的答案,但是您可以使用TrafficStats API獲得某種近似數據。

我有一段代碼,這是由定時器和一個叫totalDownload和totalUpload幾類變量的偶爾發射了...

long newTotalDownload = TrafficStats.getTotalTxBytes(); 
long newTotalUpload = TrafficStats.getTotalRxBytes(); 

long incDownload = newTotalDownload - totalDownload; 
long incUpload = newTotalUpload - totalUpload; 

if (incUpload > 0) 
{ 
    //data was being uploaded in the last time period 
} 
if (incDownload > 0) 
{ 
    //data was being downloaded in the last time period 
} 
//set up for the next iteration 
totalDownload = newTotalDownload; 
totalUpload = newTotalUpload; 

它的工作原理,但我想,如果你喜歡一個更好的答案找一個。

+0

即使沒有互聯網連接,上傳部分是積極的。 。 。我認爲只有下載部分有意義。 – 2016-10-07 08:31:17