您好我正在尝试使用以下代码来使用每个Android应用程序。
PackageManager packageManager = getActivity().getPackageManager();
List<PackageInfo> applist = packageManager.getInstalledPackages(0);
Iterator<PackageInfo> it = applist.iterator();
while (it.hasNext()) {
PackageInfo pk = (PackageInfo) it.next();
if (pk.versionName == null) {
continue ;
}
double received = (double) TrafficStats.getUidRxBytes(pk.applicationInfo.uid)
/ (1024 * 1024);
double send = (double) TrafficStats.getUidTxBytes(pk.applicationInfo.uid)
/ (1024 * 1024);
double total = received + send;
textview.setText(pk.applicationInfo.loadLabel(
getActivity().getPackageManager())
.toString() + " " +String.format( "%.2f", total )+" MB");
}
但是如果设备重新启动,则值将被删除。但是在设备中,如果你去Android设置 - &gt;数据使用 - &gt;用法仍然存在。我的问题是
从哪里读取每个应用程序的数据使用情况。 ?
代码说明很有帮助。感谢。
答案 0 :(得分:0)
TrafficStats.getUidRxBytes(int)仅返回设备启动时的数据使用情况。为什么不尝试将流量数据写入文件,以便在启动后可用?您可以构建一个START_REDELIVER_INTENT服务以在后台运行