我正在尝试通过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做了其他操作吗?还是由于某种原因隐藏了该信息(背景)?