【发布时间】:2015-08-25 01:22:21
【问题描述】:
我有一个应用程序使用traffic stats API 来查看哪些正在运行的进程正在使用网络。
我以前是通过getRunningAppProcesses()方法获取uid来实现的。显然,这已在 Android M 中更改为仅返回您的应用程序包名称,如 here 所示。
我的问题是:还有其他方法可以获取 Android M 中每个正在运行的进程的名称和 UID吗?
这是我之前如何执行此操作的示例,我想在 Android M 上重新创建此功能。
List<RunningAppProcessInfo> procInfos = activityManager.getRunningAppProcesses();
PackageManager pm = context.getPackageManager();
for (int i = 0; i < procInfos.size(); i++) {
try {
String packageName = procInfos.get(i).processName;
String appName = "";
try {
appName = pm.getApplicationLabel(
pm.getApplicationInfo(packageName, PackageManager.GET_META_DATA))
.toString();
} catch (NameNotFoundException e) {
appName = "";
}
int uid = procInfos.get(i).uid;
long ulBytes = TrafficStats.getUidTxBytes(uid);
long dlBytes = TrafficStats.getUidRxBytes(uid);
// Do other stuff.
非常感谢任何帮助。谢谢!
【问题讨论】:
-
同样的事情也发生在我身上。有什么解决办法吗?我看到code.google.com/p/android-developer-preview/issues/…,但没有人提供解决方案!
标签: android process uid android-6.0-marshmallow