获取可启动的已安装应用程序列表 - 其中一些已丢失

时间:2015-07-29 17:09:46

标签: android android-package-managers

这是我检索所有已安装应用程序列表的简单功能,我只需要那些可以启动的应用程序:

public static ArrayList<PhoneAppItem> getInstalledApps()
{
    PackageManager pm = MainApp.get().getPackageManager();
    List<PackageInfo> apps = pm.getInstalledPackages(PackageManager.GET_META_DATA);
    ArrayList<PhoneAppItem> items = new ArrayList<>();
    for (int i = 0; i < apps.size(); i++)
    {
        // nur startbare Apps hinzufügen
        if(pm.getLaunchIntentForPackage(apps.get(i).packageName) != null)
        {
            PhoneAppItem item = new PhoneAppItem(apps.get(i).packageName);
            items.add(item);
        }
    }
    Collections.sort(items, new Comparator<PhoneAppItem>() {
        @Override
        public int compare(PhoneAppItem ai1, PhoneAppItem ai2) {
            return ai1.getName().compareToIgnoreCase(ai2.getName());
        }
    });

    return items;
}

这给了我一个好结果,但我错过了一些应用程序。实际上,我可以看到我错过了一个应用程序,我的三星手机上的电话应用程序(虽然我可以看到联系人应用程序)。

为什么呢?它的解决方案是什么?

0 个答案:

没有答案