问题描述
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
received = findViewById(R.id.received);
transmitted = findViewById(R.id.transmitted);
long startTimeMilli = 0L;
long endTimeMilli = 0L;
networkstatsmanager networkstatsmanager = (networkstatsmanager) this.getSystemService(Context.NETWORK_STATS_SERVICE);
PackageManager packageManager = this.getPackageManager();
ApplicationInfo info = null;
try {
info = packageManager.getApplicationInfo(getApplicationContext().getPackageName(),0);
} catch (PackageManager.NameNotFoundException e) {
e.printstacktrace();
}
int uid = info.uid;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
try {
Date startDate = sdf.parse("2020-10-29T13:00:00");
startTimeMilli = startDate.getTime();
Date endDate = sdf.parse("2020-10-30T13:00:00");
endTimeMilli = endDate.getTime();
} catch (ParseException e) {
e.printstacktrace();
}
NetworkStats networkStats = networkstatsmanager.queryDetailsForUid(NetworkCapabilities.TRANSPORT_WIFI,"",startTimeMilli,endTimeMilli,uid);
long rxBytes = 0L;
long txBytes = 0L;
NetworkStats.Bucket bucket = new NetworkStats.Bucket();
do {
networkStats.getNextBucket(bucket);
rxBytes += bucket.getRxBytes();
txBytes += bucket.getTxBytes();
}while (networkStats.hasNextBucket());
received.setText(String.valueOf(rxBytes));
transmitted.setText(String.valueOf(txBytes));
networkStats.close();
}
我正在尝试获取已发送和已接收的字节,但该值始终为0。我什至尝试将开始时间0和结束时间设置为System.currentTimeMillis(),它不起作用。有人可以帮助您更改什么。谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)