如何知道每天的互联网总数据使用量?
例如,在一天结束时我使用了 800mb,那么它应该返回“2015 年 5 月 20 日 800mb 的互联网使用量”。
那么如何检测总数据使用量呢?
经过大量谷歌搜索后,我只能找到发送和接收字节的数据使用情况,而不是总使用情况。
并且还希望将使用量分成 wifi 和移动数据。
如何知道每天的互联网总数据使用量?
例如,在一天结束时我使用了 800mb,那么它应该返回“2015 年 5 月 20 日 800mb 的互联网使用量”。
那么如何检测总数据使用量呢?
经过大量谷歌搜索后,我只能找到发送和接收字节的数据使用情况,而不是总使用情况。
并且还希望将使用量分成 wifi 和移动数据。
看一下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;
所以总结一下: