Android - сбросить NetworkStatsManager полученные и переданные байты в ноль - PullRequest
2 голосов
/ 23 июня 2019

Существует ли способ сброса байтов «Получено» и «Передано» для всех приложений, используя NetworkStatsManager?

Я использую приведенный ниже код для получения сетевого использования приложений, установленных на устройстве.

 private void getNetworkStatsBuckets(PackageManager pm) throws PackageManager.NameNotFoundException, RemoteException {
    NetworkStatsManager networkStatsManager = (NetworkStatsManager) getSystemService(Context.NETWORK_STATS_SERVICE);
    TelephonyManager manager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
    String subscriberId = manager.getSubscriberId();
    List<PackageInfo> packinfos = pm.getInstalledPackages(PackageManager.GET_PERMISSIONS);
    for (PackageInfo pInfo : packinfos) {
        String[] premissions = pInfo.requestedPermissions;
        if (premissions != null && premissions.length > 0) {
            for (String premission : premissions) {
                if ("android.permission.INTERNET".equals(premission)) {
                    ApplicationInfo info = pm.getApplicationInfo(pInfo.packageName, 0);
                    int uid = info.uid;
                    NetworkStats networkStats = networkStatsManager.queryDetailsForUid(ConnectivityManager.TYPE_WIFI, subscriberId, last_clear_time_minus_4_hours, System.currentTimeMillis(), uid);
                    long rxBytes = 0, txBytes = 0;
                    while (networkStats.hasNextBucket()) {
                        NetworkStats.Bucket bucket = new NetworkStats.Bucket();
                        networkStats.getNextBucket(bucket);
                        rxBytes += bucket.getRxBytes();
                        txBytes += bucket.getTxBytes();
                    }

                   // display the apps according to Received and Transmitted bytes in an ascending order. 
                }
            }
        }
    }
    return;
}

Моя проблема в том, что я хочу сбросить все сетевое использование приложения до нуля.Есть ли обходной путь для этого?

Любая помощь очень ценится.Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...