android wifi主动数据传输

时间:2012-02-06 06:26:00

标签: android android-wifi wifimanager

使用Android TelephonyManager,应用程序可以通过蜂窝网络获取数据活动的状态。例如,活动进入,退出或两者兼而有之。我想知道是否有人知道如何获得使用Wifi连接设备时的相同信息?在冰淇淋三明治(4.0.3,我认为)他们有这个信息可用于Wifi和电话,但在此之前它只适用于手机(WifiManager在冰淇淋三明治发布之前没有更新此信息)。

基本上,我希望能够在连接到Wifi网络时检查手机/平板电脑是否正在传输数据(不仅仅是连接了Wifi)。这些数据不必由我发起;我只是想知道数据是否在积极移动。

有没有人有任何想法如何实现这一目标?我对Android很新,并希望这些信息能够确保我的应用程序没有做任何坏事。提前感谢任何想法。

1 个答案:

答案 0 :(得分: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;

它有效,但如果找到一个,我想要一个更好的答案。