2

我正在尝试计算移动数据使用量,所以我使用了一个通知我 3G 连接的广播,然后我运行一个Service来计算数据。

问题是计算值总是小于 Android 数据使用默认应用程序计算的值。

这是代码:

long now = TrafficStats.getMobileRxBytes();
long before  = now;
do {

    now = TrafficStats.getMobileRxBytes() ;
    Diffnow = now - before;

    SystemClock.sleep(500);


}while ((cm.getActiveNetworkInfo() != null) && (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE));

Log.i(TAG,"delta  = "+(float)Diffnow/(1024*1024));
4

1 回答 1

0

我想我找到了答案要计算数据使用量,我们必须计算传输和接收的数据,所以我必须更改我的代码如下:

long now = TrafficStats.getMobileRxBytes()+TrafficStats.getMobileTxBytes();
long before  = now;
long Diffnow ;

do {

    now = TrafficStats.getMobileRxBytes()+TrafficStats.getMobileTxBytes() ;
    Diffnow = now - before;
    SystemClock.sleep(500);


}while ((cm.getActiveNetworkInfo() != null) && (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE));

Log.i(TAG,"delta  = "+(float)Diffnow/(1024*1024));
于 2016-09-01T16:42:43.807 回答