android wifi主动数据传输

标签 android android-wifi wifimanager

使用安卓 TelephonyManager应用程序可以通过蜂窝网络获取数据 Activity 状态。例如, Activity 正在进入、离开或两者兼而有之。我想知道是否有人知道在使用 Wifi 连接设备时获取相同信息的方法?在 Ice Cream Sandwich(我认为是 4.0.3)中,他们提供了可用于 Wifi 和 Telephone 的信息,但在此之前它仅适用于电话(WifiManager 在 Ice Cream Sandwich 发布之前没有更新此信息)。

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

有人知道如何实现吗?我是 Android 的新手,希望获得这些信息以确保我的应用程序不会做任何坏事。提前感谢您的任何想法。

最佳答案

我也一直在寻找这个,但我没有得到完美的答案,但您可以使用 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;

它有效,但如果您能找到更好的答案,我希望得到更好的答案。

关于android wifi主动数据传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9156335/

相关文章:

android - 在 Android 9 中正确使用 wifi RTT ranging

android - wifiManager.startScan 不返回任何结果(请需要一些指导)

Android:从原始文件夹中检索音乐文件信息

android - 如何将 SurfaceTexture 保存为位图

android - 如何在 android pie(9) 设备中获取当前的 wifi 连接名称?

如果该 SSID 已经有另一个 WifiConfiguration,则 Android 6.0 无法添加 WifiConfiguration

java - 比 WifiManager startScan() 更快的 WiFi 扫描替代方案?

java - 如何在 Activity 退出之前释放分配给可绘制对象的内存?

java - android:动画淡入淡出

android - (Android) 是否有可靠的信号表明网络 channel 是可路由的?