Uso de datos desde cualquier aplicación

Quiero leer cuántos datos de 3G usan todas las aplicaciones. ¿Esto es posible en iOS 5.x? ¿Y en iOS 4.x? Mi objective es, por ejemplo:

  • Los maps consumieron 3 MB de tu plan de datos
  • El correo consumió 420 kB de su plan de datos

etc, etc. ¿Es esto posible?

EDIT: Acabo de encontrar la aplicación haciendo eso: Data Man Pro

introduzca la descripción de la imagen aquí

EDIT 2: estoy comenzando una recompensa. Los puntos adicionales van a la respuesta que lo deja claro. Sé que es posible (pantalla de Data Man Pro) y estoy seguro de que la solución es limitada. Pero, ¿cuál es la solución y cómo implementar esto?

Estos son solo sugerencias, no una solución. Pensé en esto muchas veces, pero nunca empecé a implementar todo.

  1. en primer lugar, puede calcular los bytes transferidos que consultan las interfaces de networking, eche un vistazo a esta respuesta SO de código y una buena explicación sobre las interfaces de networking en iOS;

  2. use sysctl o funciones similares del sistema para detectar qué aplicaciones se están ejecutando actualmente (y para ejecutar, quiero decir que el estado del process está configurado en EJECUCIÓN, como lo hacen los commands ps o superior en OSX. Nunca intenté supongo que esto sería posible en iOS, esperando no hay problemas con la aplicación que se ejecuta como usuario sin privilegios) para que pueda deducir qué aplicaciones se están ejecutando y save las statistics de tráfico para esas aplicaciones. Obviamente, dada la posibilidad de tener aplicaciones corriendo en segundo plano, es difícil determinar qué aplicación está transfiriendo datos.
    También podría ser posible recuperar información sobre la actividad de la networking por process / aplicación como lo hace nettop en OSX Lion, desafortunadamente nettop usa el marco privado NetworkStatistics.framework para que no pueda cavar algo sobre su implementación;

  3. tener en count el time;

Mis 2 centavos

No, todas las aplicaciones en iOS están aisladas, lo que significa que no puede acceder a nada fuera de la aplicación. No creo que esto sea posible. Tampoco creo que el tráfico de datos se guarde en este nivel en el dispositivo, por lo que Apple lo habría implementado en la página de network o en la página de usage en Settings.app .

Además de eso, no todos tienen un "plan de datos". Por ejemplo, en Suecia es común que el tráfico de datos sea gratuito sin límite en tamaño ni velocidad.