我的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()