android - 如何计算android中每个应用程序的移动和wifi数据使用量?

标签 android usage-statistics android-data-usage

是否有任何可能的方法使用 TrafficStats 计算 android 中每个应用程序的移动和 wifi 使用情况:(getUidRxBytes,getUidTxBytes,getTotalRxbytes,getTotalTXbytes,getMobileRxBytes,getMobileTxBytes)方法?我知道一定有某种方法可以做到这一点,因为 3G 看门狗和其他一些应用程序提供了这些详细信息。

有人可以帮忙吗?谢谢

最佳答案

我对这类问题写过类似的答案here .要获取每个应用程序的总体数据使用情况,使用您命名的方法 TrafficStats.getUidTxBytes(int)TrafficStats.getUidRxBytes(int) 非常容易。然而,闯入移动和 Wifi 目前还不是公开的。

正如我在其他回答中提到的,您必须深入研究内部框架 API 并尝试复制其中使用的一些方法。你肯定需要使用 NetworkTemplate.buildTemplateWifiWildcard()NetworkTemplate.buildTemplateMobileWildcard()以便为每个接口(interface)检索正确的 NetworkStats。一旦您拥有 NetworkStats 对象,您就可以获取您的信息。 请注意:如果您在公共(public)应用中使用它,使用内部 API 可能会在 Google 决定更新它们时中断。

编辑:作为另一个提示,您应该查看来源,了解“设置”应用如何能够显示每个应用的流量并将其按移动/Wifi 分开。特别是你可以在这里查看他们的 ChartDataLoader ,特别是方法 collectHistoryForUid()loadInBackground()

关于android - 如何计算android中每个应用程序的移动和wifi数据使用量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20184510/

相关文章:

c# - 将 metresc 距离添加到 Long/Lat e6

java - 如何在 Android 中转换日期和时间

Android Lollipop 知道应用程序是否作为使用情况统计访问权限

java - 如何从应用程序中准确找到 Java 应用程序使用了多少内存

android - 如何更改微调器的图像

java - Android游戏开发几个场景

google-cloud-platform - 谷歌CP : Cloud Functions Graphs

android - 如何以编程方式检查移动数据使用情况?

android - 如何使用 NetworkStatusManager 或 TrafficStat 在 Android 中获取网络共享和移动热点数据使用情况