2012-02-06 74 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