TrafficStats返回的错误值

问题描述 投票:1回答:1

我的Android应用(运行Android 10)使用网络流量统计信息。

当我的设备在Wifi上时,TrafficStats.getMobileTxBytes和... getMobileRxBytes始终返回0。

当它在蜂窝网络上打开时,返回的值看起来不错。

任何想法或解决方案?

android android-wifi android-networking cellular-network android-trafficstats
1个回答
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()

© www.soinside.com 2019 - 2024. All rights reserved.