【问题标题】:How to get a list of all the installed apps on an android device and store the names of the apps in a string array?如何获取 android 设备上所有已安装应用程序的列表并将应用程序的名称存储在字符串数组中?
【发布时间】:2015-03-30 23:08:48
【问题描述】:

我对如何从以下链接获取所有已安装应用程序的信息进行了一些研究。 How to get a list of all installed apps on a android device

链接给出的代码如下:

final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
final List pkgAppsList = context.getPackageManager().queryIntentActivities( mainIntent, 0);

我做了一些研究,但找不到以下两个问题的答案。

  1. 有没有办法获取应用程序的名称而不是包名称?

  2. 我可以将其存储在字符串数组中 (String[] nameofappsinstalled) 吗?

我的目标是制作一个简单的应用程序,其中安装了所有应用程序的名称并将它们放在一个列表视图中。列表视图接受 String[](字符串数组),应用程序在 List 类中返回。

【问题讨论】:

  • 首先,创建你的字符串数组。然后遍历作为粘贴代码的结果获得的列表 - 单独检索每个应用程序信息,并将名称放入您的数组中。有什么困难?

标签: android arrays android-listview


【解决方案1】:

我对如何从以下链接获取所有已安装应用程序的信息进行了一些研究。如何获取安卓设备上所有已安装应用的列表

这并没有给出已安装应用程序的列表。它提供了可启动活动的列表。一个应用可以有 0 个、1 个或多个可启动的 Activity,但大多数情况下只有一个。

有没有办法获取应用程序的名称而不是包名称?

您返回的List 确实是List<ResolveInfo>。在每个ResolveInfo 上调用loadLabel(),将PackageManager 作为参数传递,以获取活动的标签。

我可以将它存储在字符串数组中吗(String[] nameofappsinstalled)?

当然,尽管ArrayList<String> 会更简单、更灵活。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    • 2011-06-03
    • 1970-01-01
    • 1970-01-01
    • 2017-09-04
    • 1970-01-01
    相关资源
    最近更新 更多