Hallo,
ich wollte mir eine App programmieren die den Datentransfer (3G und LAN) mit TrafficStats
misst. Die 3G Daten (getMobileRxBytes() und getMobileTxBytes()) werden ohne Probleme gelesen.
LAN + 3D bekommt man mit getTotalRxBytes() und getTotalTxBytes().
Die differenz ist dann der LAN Traffic.

So weit so gut.
Ich hatte das Handy über 3G und LAN im Internet und habe folgende Werte:
In diesem Moment ist das LAN aktiv und 3G ist aus.
getTotalRxBytes() 9071678 bytes
getMobileRxBytes() 3675092 bytes

Jetzt aktiviere ich 3G und schalte die LAN-Verbindung aus. Die neuen Werte sind:
getTotalRxBytes() 3675092 bytes
getMobileRxBytes() 3675092 bytes

Kurz gesurft um Traffic zu generieren:
getTotalRxBytes() 4253931 bytes
getMobileRxBytes() 4253931 bytes

Wenn ich also das 3G Netz benutze, ist getTotalRxBytes() = getMobileRxBytes()
und die Daten der LAN Verbindung sind weg.

Schalte ich jetzt 3G aus und LAN an, geht es ab da normal weiter.
getTotalRxBytes() 4384605 bytes
getMobileRxBytes() 4253931 bytes

Man kann so immer weiter machen. Schaltet man zurück auf 3G sind die LAN Daten verloren und getTotalRxBytes() ist wieder = getMobileRxBytes().

Hat jemand eine Erklärung? Ich verstehe das nicht.

Sorry fÜr die ganzen verwirrenden Zahlen.