TrafficStatsクラスを使用することでモバイル(3G)通信と全体の通信量を調べることができる。アプリごとの通信量も調べることができる。
long mobileRxBytes = TrafficStats.getMobileRxBytes();
long mobileTxBytes = TrafficStats.getMobileTxBytes();
long totalRxBytes = TrafficStats.getTotalRxBytes();
long totalTxBytes = TrafficStats.getTotalTxBytes();
ActivityManager am = (ActivityManager)getSystemService(ACTIVITY_SERVICE)
for (RunningAppProcessInfo info : am.getRunningAppProcesses()) {
long uidRxBytes = TrafficStats.getUidRxBytes(info.uid);
long uidTxBytes = TrafficStats.getUidTxBytes(info.uid);
}
この内部実装は、/sys/class/net/rmnet0/statistics/もしくは、/sys/class/net/ppp0/statistics/配下のファイルおよび、/proc/uid_stat/[uid]/配下のファイルの値を返しているだけである。そのため、ファイルを直接読み込んでも同じことができる。
0 件のコメント:
コメントを投稿