Android-将NetworkStatsManager接收和传输的字节重置为零

Android-将NetworkStatsManager接收和传输的字节重置为零,android,networkstatsmanager,Android,Networkstatsmanager,是否有办法使用NetworkStatsManager重置所有应用程序接收和传输的字节 我正在使用以下代码获取设备上安装的应用程序的网络使用情况 private void getNetworkStatsBuckets(PackageManager pm) throws PackageManager.NameNotFoundException, RemoteException { NetworkStatsManager networkStatsManager = (NetworkStats

是否有办法使用
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;
}
private void GetNetworkStatsBucket(PackageManager pm)抛出PackageManager.NameNotFoundException、RemoteException{
NetworkStatsManager NetworkStatsManager=(NetworkStatsManager)getSystemService(Context.NETWORK\u STATS\u SERVICE);
TelephonyManager=(TelephonyManager)getSystemService(Context.TELEPHONY_服务);
字符串subscriberId=manager.getSubscriberId();
List packinfos=pm.getInstalledPackages(PackageManager.GET_权限);
用于(PackageInfo pInfo:packinfos){
String[]premissions=pInfo.requestedPermissions;
if(预任务!=null&&premissions.length>0){
用于(字符串预分配:预分配){
if(“android.permission.INTERNET.equals(premission)){
ApplicationInfo=pm.getApplicationInfo(pInfo.packageName,0);
int uid=info.uid;
NetworkStats NetworkStats=networkStatsManager.querydeailsfourid(ConnectivityManager.TYPE\u WIFI,subscriberId,last\u clear\u time\u减去4小时,System.currentTimeMillis(),uid);
长rxBytes=0,txBytes=0;
while(networkStats.hasNextBucket()){
NetworkStats.Bucket Bucket=新的NetworkStats.Bucket();
networkStats.getNextBucket(bucket);
rxBytes+=bucket.getRxBytes();
txBytes+=bucket.getTxBytes();
}
//根据接收和传输的字节以升序显示应用程序。
}
}
}
}
返回;
}
我的问题是我想将所有应用程序的网络使用率重置为零。有什么解决办法吗

非常感谢您的帮助。 提前谢谢