来自任何应用程序的数据使

时间:2012-05-10 09:17:45

标签: objective-c ios

我想了解每个应用使用3G的数据量。在iOS 5.x中这是可能的吗?在iOS 4.x中?我的目标是例如:

  • 地图消耗了数据计划中的3 MB
  • 从您的数据计划消耗了420 kB邮件

等,这可能吗?

编辑: 我刚发现应用程序这样做:Data Man Pro

enter image description here

编辑2: 我开始赏金了。额外的要点是明确的答案。我知道它是可能的(来自Data Man Pro的屏幕),我确信解决方案是有限的。但是解决方案是什么以及如何实现它。

2 个答案:

答案 0 :(得分:8)

这些只是提示而不是解决方案。我多次考虑过这个问题,但从未真正开始实施这一切。

  1. 首先,您可以计算查询网络接口的传输字节,查看this SO answer代码以及iOS上网络接口的一个很好的解释;

  2. 使用 sysctl 或类似的系统函数来检测当前正在运行的应用程序(以及正在运行我的意思是将进程状态设置为RUNNING,如<在OSX上执行em> ps 或 top 命令。从未尝试过我只是假设在iOS上可以实现这一点,希望应用程序作为非特权用户运行没有问题)所以你可以推断出应用正在运行并保存这些应用的流量统计信息。显然,考虑到在后台运行应用程序的可能性,很难确定哪个应用程序正在传输数据。
    也可以在OSX Lion上检索有关每个进程/应用程序的网络活动的信息,例如 nettop ,遗憾的是 nettop 使用私有框架NetworkStatistics.framework你无法挖掘它的实现;

  3. 考虑时间;
  4. 我的2美分

答案 1 :(得分:1)

不,iOS中的所有应用程序都是沙盒,这意味着您无法访问应用程序之外的任何内容。我不相信这是可能的。我也不认为数据流量是在设备的这个级别保存的,因此苹果会在network页面或usage中的Settings.app页面中实现它。

除此之外,并非所有人都有“数据计划”。例如。在瑞典,数据流量是免费的,不受大小或速度的限制。