Obtener estadísticas de tráfico wifi android
Estoy desarrollando una aplicación que permite comprobar estadísticas de tráfico wifi y móvil en android. Así es como obtengo las estadísticas:
long mobileStats = TrafficStats.getMobileRxBytes() + TrafficStats.getMobileTxBytes(); long wifiStats = TrafficStats.getTotalRxBytes() + TrafficStats.getTotalTxBytes() - mobileStats;
Por desgracia, wifiStats
aquí parece ser más que wifi sólo porque incluso cuando desactivo wifi en mi teléfono inteligente, me pone toneladas de datos. Creo que getTotalRxBytes()
y getTotalTxBytes()
están contando bytes transmitidos y recibidos en todas las interfaces de red.
- ¿Cómo crear wifi tethering Hotspot en Android Marshmallow?
- Cómo evitar el retraso en los mensajes de GCM de Android / cambio de latidos del corazón
- Android Wi-Fi Direct leer la intensidad de la señal rssi
- ¿Cómo distinguir entre diferentes redes wifi?
- Retraso / retraso enorme de UDP con Android
He buscado mucho en la web cómo obtener estadísticas de tráfico sólo en wifi, pero no puedo encontrar una manera.
Con gusto aceptaría cualquier ayuda.
- Averigüe si una dirección / puerto ya está enlazado bajo Android
- ¿Cómo obtener el nombre de la red wifi fuera de android utilizando la API de Android?
- WiFi-Direct en JellyBean, WPA Suplicante desordenado
- No se puede acceder a Internet a través de WiFi desde un servicio de fondo
- No se puede conectar a Android a través de ADB a través de wifi - ¿Necesito acceso root?
- No se puede conectar a un Wifi específico mediante programación en Android
- Problema al conectar la aplicación de Android al socket mediante la conexión de celda
- Wi-Fi tethering - cómo obtener la lista de clientes conectados
Tuve el mismo problema hace unos años y resolvió esto leyendo los archivos del sistema directamente.
private final String RX_FILE = "/sys/class/net/wlan0/statistics/rx_bytes"; private final String TX_FILE = "/sys/class/net/wlan0/statistics/tx_bytes"; private long readFile(String fileName){ File file = new File(fileName); BufferedReader br = null; long bytes = 0; try{ br = new BufferedReader(new FileReader(file)); String line = ""; line = br.readLine(); bytes = Long.parseLong(line); } catch (Exception e){ e.printStackTrace(); return 0; } finally{ if (br != null) try { br.close(); } catch (IOException e) { e.printStackTrace(); } } return bytes; }
¡Espero eso ayude!
- Mostrar archivo PDF en Android WebView utilizando mozilla pdf.js Nivel de API Android inferior a 19
- Cómo mostrar que un listView está vacío con un adaptador de lista personalizado