En primer lugar, permítanme decir que el recuento de datos de red en Android no es tan fácil, porque no hay ninguna API que proporcione esta información de una manera limpia. Los desarrolladores de aplicaciones tienen que trabajar con algunos aspectos internos de Linux y otras cuestiones. Esta es la razón por la que la mayoría de las aplicaciones de conteo de tráfico no funcionan en todas las combinaciones de hardware/software. Por ejemplo, yo tenía una aplicación que funcionaba con Eclair, pero dejó de funcionar con Gingerbread en mi Galaxy S.
Android introdujo la compatibilidad con Long Term Evolution (4G) con el nivel 11 de la API (Honeycomb). La mayoría de los contadores de tráfico leen su información de volumen de la interfaz de red linux subyacente. AFAIK sólo hay dos interfaces, una para Wifi y otra 2G/3G/4G, lo que significa:
- Será difícil controlar los datos 4G separados de los 2G/3G
- Si una aplicación dice que controla 2G/3G, es muy probable que también incluya 4G.
- La API 4G de Android es relativamente nueva. La compatibilidad, incluido el recuento de tráfico independiente (si es posible), llegará a las aplicaciones en un futuro próximo.
Aquí hay un ejemplo de listado que muestra las interfaces y su tráfico en mi Galaxy S. pdp0 es el móvil y eth0 es el wifi iterface:
Interface name: lo
Bytes in: 204335770
Bytes out: 204335770
Interface name: svnet0
Bytes in: 669002
Bytes out: 38238
Interface name: ifb0
Bytes in: 0
Bytes out: 0
Interface name: ifb1
Bytes in: 0
Bytes out: 0
Interface name: usb0
Bytes in: 0
Bytes out: 0
Interface name: sit0
Bytes in: 0
Bytes out: 0
Interface name: ip6tnl0
Bytes in: 0
Bytes out: 0
Interface name: eth0
Bytes in: 9981470
Bytes out: 3524023
Interface name: pdp0
Bytes in: 1421620
Bytes out: 361198