Существует ли способ сброса байтов «Получено» и «Передано» для всех приложений, используя 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;
}
Моя проблема в том, что я хочу сбросить все сетевое использование приложения до нуля.Есть ли обходной путь для этого?
Любая помощь очень ценится.Заранее спасибо.