Was ich tun möchte, ist 3G-Verkehr bzw. WLAN-Verkehr zu zählen. Jetzt weiß ich, wie man mit WiFi umgeht. Unten ist der Quellcode für WiFi. Auf diese Weise kann ich WiFi-Verkehr für alle Android-Telefone aller Hersteller zählen. Aber ich habe keinen ähnlichen Weg für 3g gefunden. Weiß jemand?
%Vor%Ab API-Level 8 (Android 2.2) gibt es eine Klasse TrafficStats , die was bietet Sie brauchen:
Klasse, die Netzwerkverkehrsstatistiken bereitstellt. Diese Statistiken beinhalten gesendete und empfangene Bytes und übertragene Netzwerkpakete und empfangen, über alle Schnittstellen, über die mobile Schnittstelle und auf a pro UID-Basis.
In den älteren Versionen können Sie den von Ihnen erwähnten Ansatz verwenden (d. h. den Dateiinhalt von /sys/class/net/...
files lesen). Dieser Blogbeitrag enthält eine hervorragende Zuordnung zwischen TrafficStats
Methoden und Dateispeicherorte. Und dieser SO-Beitrag enthält die Quelle, die der Autor zum Lesen dieser Dateiwerte verwendet hat. Danach sollten Sie zuerst versuchen, die Nummer aus der " /sys/class/net/rmnet0/statistics/rx_bytes
" Datei zu lesen (für den Wert "received bytes") und falls es fehlschlägt, versuchen Sie stattdessen " /sys/class/net/ppp0/statistics/rx_bytes
".
Tags und Links android network-traffic