0

我需要将所有已安装的应用程序图标存储在一个数组中,并将名称存储在另一个数组中,所以我有这段代码:

List<PackageInfo> apps = getPackageManager().getInstalledPackages(0);
        int numberApps = apps.size();
        String[] appsNames = new String[numberApps];
        Drawable[] appsIcons = new Drawable[numberApps];


        for(int i=0;i<apps.size();i++) {
            PackageInfo p = apps.get(i);
            String pname = p.packageName;
            String appname = p.applicationInfo.loadLabel(getPackageManager()).toString();
            appsNames[i] = appname;
            Drawable appicon = p.applicationInfo.loadIcon(getPackageManager());
            appsIcons[i] = appicon;

        }

它有效,问题是显示所有应用程序,甚至是系统应用程序,所以现在我需要更改代码以获取用户安装或更新的应用程序。我一直在搜索,我找到了这个这个,但是因为我使用的是 Drawable 和字符串数组,我无法改变它,我不知道如何让它工作。有人能帮助我吗??

4

1 回答 1

1

几周前,我为我的大学做了一个矫枉过正的解决方案:你可以在 Github 上看看这门课。

我们正在处理 Android 安全流程,因此我认为了解该应用程序的内容并非易事,但该课程完全适合您的需求。

您需要花费一些时间将其绑定到您的应用程序,因为它被设计为异步的,但它可以工作。虽然可能有更简单的选择(但是当它太简单时谁喜欢它?)

您找到的选项会起作用,但是为什么您坚持使用数组,您不能创建它的适配器吗?

于 2016-01-15T00:43:57.737 回答