15

我正在尝试制作一个显示所有活动应用程序的程序。

我到处搜索,但只能找到仅显示包名称的代码。

如果各位高手能告诉我如何显示所有活动的应用程序名称将有很大帮助

4

3 回答 3

34

你试过用ActivityManager.getRunningAppProcesses()吗?以下是检索名称的示例代码:

ActivityManager am = (ActivityManager)this.getSystemService(ACTIVITY_SERVICE);
List l = am.getRunningAppProcesses();
Iterator i = l.iterator();
PackageManager pm = this.getPackageManager();
while(i.hasNext()) {
  ActivityManager.RunningAppProcessInfo info = (ActivityManager.RunningAppProcessInfo)(i.next());
  try {
    CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(info.processName, PackageManager.GET_META_DATA));
    Log.w("LABEL", c.toString());
  }catch(Exception e) {
    //Name Not FOund Exception
  }
}

于 2010-10-05T06:23:18.710 回答
1

如果您正在获取包名称,您应该能够使用 PackageManager 获取有关应用程序的其他信息:

http://developer.android.com/reference/android/content/pm/PackageManager.html

有获取应用程序图标、ApplicationInfo 和 ActivityInfo 对象的直接方法。在我的脑海中,我不知道哪一个会引导你到可读的名称,但如果它不能通过这里的一种方法直接访问,它应该可以从应用程序资源访问(也可以从这个类访问)。

于 2010-10-05T07:05:46.580 回答
-2

我在发这篇文章时做了一些不正确的假设,现在意识到它们是不正确的。- 删除

于 2012-04-24T15:20:35.147 回答