【问题标题】:Android: How to obtain individual data usage counters?Android:如何获取个人数据使用计数器?
【发布时间】:2013-12-21 22:16:08
【问题描述】:

目前的挑战是如何为每个网络接口获取准确的数据计数器。 TrafficStats 类提供了一些帮助:

TrafficStats.getMobileRxBytes() /* Similar for TX */
TrafficStats.getTotalRxBytes() /* Similar for TX */

由此可以计算出手机界面的流量。 但是我看到一些帖子声称:

  • WIFI 使用量 = 总计 - 美孚;

这是不正确的,因为 Total 包括所有网络接口(即蓝牙和 USB 以及 WIFI 和移动)。因此,使用上述计算,WIFI 结果可能与实际正确值有很大的偏差。

任何人都可以协助或提供有关如何准确分析每个网络接口的帮助吗?

【问题讨论】:

    标签: android mobile bluetooth wifi counter


    【解决方案1】:

    这是不正确的,因为 Total 包括所有网络接口(即蓝牙和 USB 以及 WIFI 和移动)。

    我不完全确定您是如何确定蓝牙和 USB 包含在 TrafficStats 中的。

    任何人都可以协助或提供有关如何准确分析每个网络接口的帮助吗?

    Android SDK 中除了您从TrafficStats 获得的内容外,没有其他任何内容。欢迎您使用play around with trying to get the information from Linux,请记住这可能不适用于所有设备。

    【讨论】:

    • 从开发人员文档中,我找到了 TrafficStats 的以下定义: public static long getTotalRxPackets () 在 API 级别 8 中添加 返回自设备启动以来接收的数据包数。对所有网络接口上的数据包进行计数,并且自设备启动以来始终单调增加。统计数据是在网络层测量的,因此它们包括 TCP 和 UDP 使用情况。 “... 跨所有网络 ..” 在我的设备 (HTC ONE X) 上列出网络 我得到一个列表,其中包括: > BLUETOOTH_TETHER > USBNET .. 蓝牙和 USB 都属于网络接口。
    • @user2802170:您假设文档准确,不幸的是,这不是一个有效的假设。我建议您使用蓝牙(在单独的测试中使用 USB)对其进行实际测试,并确认对TrafficStats 的影响。
    • 是的,我同意文档有时很糟糕......以懒惰的名义......有其他人测试过这篇文章中声称的事实吗?即 USB 和蓝牙流量包含在 TrafficStats 计数器中吗?
    • @user2802170:这可能最好作为一个单独的 StackOverflow 问题提出。
    猜你喜欢
    • 1970-01-01
    • 2019-09-10
    • 1970-01-01
    • 1970-01-01
    • 2019-10-25
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多