NetworkStats不产生网络统计信息

问题描述

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 (将#修改为@)