我想了解每个应用使用了多少 3G 数据。这在 iOS 5.x 中可行吗?而在 iOS 4.x 中呢?例如,我的目标是:
- map 从您的数据计划中消耗了 3 MB
- 邮件从您的数据计划中消耗了 420 kB
等等,这可能吗?
编辑: 我刚刚发现应用程序正在执行此操作:Data Man Pro
编辑 2: 我要开始赏金了。明确这一点的答案要加分。我知道这是可能的(来自 Data Man Pro 的屏幕)并且我确信解决方案是有限的。但是解决方案是什么以及如何实现。
最佳答案
这些只是提示,不是解决方案。我想过很多次,但从未真正开始实现整个事情。
首先,您可以通过查询网络接口(interface)计算传输的字节数,查看this SO answer用于代码和有关 iOS 网络接口(interface)的很好的解释;
使用 sysctl 或类似的系统函数来检测当前正在运行的应用程序(对于 running 我的意思是进程状态设置为 RUNNING,如 < em>ps 或 top 命令在 OSX 上执行。从未尝试过我只是认为这在 iOS 上是可能的,希望应用程序作为非特权用户运行没有问题)所以你可以推断出哪个应用程序正在运行并保存这些应用程序的流量统计信息。显然,鉴于应用程序有可能在后台运行,因此很难确定哪个应用程序正在传输数据。
它也可以像 nettop 在 OSX Lion 上那样检索每个进程/应用程序的网络事件信息,不幸的是 nettop 使用私有(private)框架 NetworkStatistics.framework 所以你无法挖掘出它的实现;- 考虑时间;
我的 2 美分
关于objective-c - 来自任何应用程序的数据使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10530951/