如何从特定时间段获取总体(非应用程序特定)数据使用情况?
How to get Overall (not application specific)data usage from particular time period?
我正在研究 wifi 数据使用情况,想开发一个程序,当用户点击一个按钮时,设备已经连接到 wifi 将开始计算数据使用情况,点击同一个按钮将停止计算数据usage 并给出开始和停止之间的总数据使用量 event.I 搜索了许多与此相关的线程,但没有找到我要找的东西,任何人都可以帮助我吗,这就是我尝试过的东西。
代码
public class MainActivity extends AppCompatActivity {
NetworkInfo wifiCheck;
Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1 = (Button)findViewById(R.id.btn1);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
getDataWifiDataUsageInfo();
ConnectivityManager connectionManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
wifiCheck = connectionManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (wifiCheck.isConnected()) {
// Do whatever here
Toast.makeText(MainActivity.this,"WiFi is Connected",Toast.LENGTH_LONG);
} else {
Toast.makeText(MainActivity.this,"WiFi is not Connected",Toast.LENGTH_LONG);
}
}
public void checkWiFi(View view) {
Intent intent = getIntent();
finish();
startActivity(intent);
}
//get data usage info
void getDataWifiDataUsageInfo(){
Log.e("bytes recvd", "" + android.net.TrafficStats.getMobileRxBytes());
Log.e("Total", "Bytes received" + android.net.TrafficStats.getTotalRxBytes());
}
}
希望一定有人帮忙me.Looking求助
如果您在单击按钮时已经知道用户已连接到 WiFi(如您所述),则所有联网(发送和接收数据)都将通过 WiFi 连接。因此,当用户点击按钮开始时:
long startBytes = TrafficStats.getTotalRxBytes() + TrafficStats.getTotalTxBytes();
当点击停止按钮时:
long stopBytes = TrafficStats.getTotalRxBytes() + TrafficStats.getTotalTxBytes();
最后,计算开始和停止之间传输的字节数:
long bytesTransferred = stopBytes - startBytes;
我正在研究 wifi 数据使用情况,想开发一个程序,当用户点击一个按钮时,设备已经连接到 wifi 将开始计算数据使用情况,点击同一个按钮将停止计算数据usage 并给出开始和停止之间的总数据使用量 event.I 搜索了许多与此相关的线程,但没有找到我要找的东西,任何人都可以帮助我吗,这就是我尝试过的东西。 代码
public class MainActivity extends AppCompatActivity {
NetworkInfo wifiCheck;
Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1 = (Button)findViewById(R.id.btn1);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
getDataWifiDataUsageInfo();
ConnectivityManager connectionManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
wifiCheck = connectionManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (wifiCheck.isConnected()) {
// Do whatever here
Toast.makeText(MainActivity.this,"WiFi is Connected",Toast.LENGTH_LONG);
} else {
Toast.makeText(MainActivity.this,"WiFi is not Connected",Toast.LENGTH_LONG);
}
}
public void checkWiFi(View view) {
Intent intent = getIntent();
finish();
startActivity(intent);
}
//get data usage info
void getDataWifiDataUsageInfo(){
Log.e("bytes recvd", "" + android.net.TrafficStats.getMobileRxBytes());
Log.e("Total", "Bytes received" + android.net.TrafficStats.getTotalRxBytes());
}
}
希望一定有人帮忙me.Looking求助
如果您在单击按钮时已经知道用户已连接到 WiFi(如您所述),则所有联网(发送和接收数据)都将通过 WiFi 连接。因此,当用户点击按钮开始时:
long startBytes = TrafficStats.getTotalRxBytes() + TrafficStats.getTotalTxBytes();
当点击停止按钮时:
long stopBytes = TrafficStats.getTotalRxBytes() + TrafficStats.getTotalTxBytes();
最后,计算开始和停止之间传输的字节数:
long bytesTransferred = stopBytes - startBytes;