Android如何通过wifi和移动来了解每天的互联网总数据使用情况

时间:2014-09-25 05:34:45

标签: android wifi android-data-usage mobile-data

如何了解每天的互联网总数据使用情况?

例如,在一天结束的时候,我使用了800mb,那么它应该像2015年5月20日的#400;"互联网使用量800mb一样回归"。

那么如何检测总数据使用情况呢?

经过大量的谷歌搜索后,我只能在发送和接收字节中找到数据使用情况,但不会在总使用情况中找到。

并且还希望将用法分为wifi和移动数据。

1 个答案:

答案 0 :(得分:5)

看一下TrafficStats课程。为此,您需要专门查看getTotalRxBytes()getTotalTxBytes()getMobileRxBytes()getMobileTxBytes()

快速概述:

getTotalRxBytes = total downloaded bytes
getTotalTxBytes = total uploaded bytes

getMobileRxBytes = only mobile downloaded bytes
getMobileTxBytes = only mobile uploaded bytes

因此,为了获得与WiFi相关的流量的数量,您只需要获得总数,然后减去移动设备,就这样:

getTotalRxBytes - getMobileRxBytes = only WiFi downloaded bytes
getTotalTxBytes - getMobileTxBytes = only WiFi uploaded bytes

使用字节数,我们可以切换到不同的单位,例如兆字节(MB):

getTotalRxBytes / 1048576 = total downloaded megabytes

至于获取间隔的使用情况,例如一天,因为这些方法只提供总数(自启动以来),您需要跟踪起始编号,然后减去以获得在一个时间段内使用的字节数。间隔。因此,在一天开始时,例如凌晨12:00:00,您可以跟踪总使用情况:

startOfDay = getTotalRxBytes + getTotalTxBytes;

当一天结束时,例如晚上11:59:59,您可以减去这两个数字并获得当天的总使用量:

endOfDay    = getTotalRxBytes + getTotalTxBytes;
usageForDay = endOfDay - startOfDay;

总结:

  • 使用TrafficStats类提供的方法获取互联网使用总数
  • 从总计中减去移动数据以仅获取WiFi使用
  • 使用转换率将字节转换为您想要的任何单位
  • 存储一天开始时的使用量,然后减去当天结束时的使用量以获取当天使用的金额