我的Android应用程序(运行Android 10(使用网络流量统计数据。
当我的设备在Wifi上时,TrafficStats.getMobileTxBytes和。。。getMobileRxBytes始终返回0。
当它打开蜂窝网络时,返回的值看起来不错。
有什么想法或解决方案吗?
您正在使用TrafficStats.getMobileTxByte
来自文档:
返回自设备之后在移动网络上传输的字节数靴子统计所有移动网络接口上的数据包,并且始终自设备启动以来单调增加。统计数据在网络层,因此它们包括TCP和UDP的使用。
正如您所说:
始终返回0。当它打开蜂窝网络时,返回的值看起来不错。
是的,因为当蜂窝网络关闭时,不会使用移动(蜂窝(数据,因此为0。
您可以使用它来获取整个设备使用的数据:
val totalBytes = TrafficStats.getTotalRxBytes()
如果你想获得非蜂窝流量,你可以使用下面的:
val nonMobileBytes = TrafficStats.getTotalRxBytes() - TrafficStats.getMobileTxBytes
https://developer.android.com/reference/android/net/TrafficStats#getTotalRxBytes((