对android.uid.system的NetworkStatsManager查询仅返回前台信息

时间:2019-03-15 13:29:56

标签: android networkstatsmanager

我正在尝试通过NetworkStatsManager获取每个应用的android移动数据使用率。 我去扔AM.getRunningAppProcesses(),AM.getRunningServices()和AM.getInstalledApplications()。对于每个uid:

    networkStats = networkStatsManager.queryDetailsForUid(
                        ConnectivityManager.TYPE_MOBILE,
                        getSubscriberId(context, ConnectivityManager.TYPE_MOBILE),
                        startTime,
                        endTime,
                        uid)
    long dataTx = 0;
    long dataRx = 0;
    while (networkStats.hasNextBucket()) {
        NetworkStats.Bucket bucket = new NetworkStats.Bucket();
        if(networkStats.getNextBucket(bucket)) {
            dataTx += bucket.getTxBytes();
            dataRx += bucket.getRxBytes();
        }
    }

当我比较手机和获得的数据时,一切看起来都不错,但是对于android ui(android.uid.system),仅返回前台的数据使用情况。对于其余的应用程序,我同时收到前台和后台的信息。

我为该uid做了其他操作吗?还是由于某种原因隐藏了该信息(背景)?

0 个答案:

没有答案