Список только что установленных приложений

Мне нужно хранить все установленные значки приложений в массиве, а имена в другом массиве, поэтому я написал этот код:

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 и строковый массив, и я не могу изменить это, я не знаю, как заставить это работать. Может кто-то помочь мне, пожалуйста??

1 ответ

Несколько недель назад я принял решение об излишестве для своего университета: вы можете посмотреть этот класс на Github.

Мы имели дело с Android Security Flow, поэтому я не думаю, что просто понять, о чем идет речь в приложении, но этот класс полностью соответствует вашим потребностям.

Вам нужно будет потратить немного времени, чтобы привязать его к вашему приложению, потому что оно разработано так, чтобы оно было асинхронным, но оно работало бы. Хотя, возможно, есть более простые варианты (но кому это нравится, когда это слишком просто?)

Найденные вами параметры будут работать, но почему вы привязаны к массиву, не можете ли вы создать его адаптер?

Другие вопросы по тегам