使用Android TelephonyManager,应用程序可以通过蜂窝网络获取数据活动的状态。例如,活动进入,退出或两者兼而有之。我想知道是否有人知道如何获得使用Wifi连接设备时的相同信息?在冰淇淋三明治(4.0.3,我认为)他们有这个信息可用于Wifi和电话,但在此之前它只适用于手机(WifiManager在冰淇淋三明治发布之前没有更新此信息)。
基本上,我希望能够在连接到Wifi网络时检查手机/平板电脑是否正在传输数据(不仅仅是连接了Wifi)。这些数据不必由我发起;我只是想知道数据是否在积极移动。
有没有人有任何想法如何实现这一目标?我对Android很新,并希望这些信息能够确保我的应用程序没有做任何坏事。提前感谢任何想法。
答案 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;
它有效,但如果找到一个,我想要一个更好的答案。