App list что это за программа на Андроид

Как получить список установленных программ для телефонов Android

Класс Android PackageManager используется для получения информации о пакете прикладного программного обеспечения, установленном в настоящее время на устройстве. Вы можете получить экземпляр класса PackageManager, вызвав getpackagemanager (). Предоставляет методы для запроса и управления установочными пакетами и соответствующими разрешениями. В следующем примере Android мы получаем список приложений, установленных на Android.

PackageManager packageManager = getPackageManager(); List list = packageManager.getInstalledApplications(PackageManager.GET_META_DATA) Скопировать код

packageManager.getInstalledApplications () возвращает список пакетов приложений, которые все установлены на устройстве. Если мы установим флаг GET_UNINSTALLED_PACKAGES, будут возвращены все приложения в списке, включая те, которые установлены на dont_delete_data (каталоги данных некоторых установленных приложений).

1. Создайте файл макета

activity_main.xml

Вы можете увидеть скриншот во вложении, мы создадим список, в котором будут показаны все установленные приложения.

Конвертируем сайт в приложение на примере IPTV плеера

snippet_list_row.xml

Этот макет используется адаптером ListView для представления сведений о приложении. Он отображает значок приложения, имя приложения и пакет приложения.

2. класс java

AllAppsActivity.java

Это основной класс приложения, используемый для инициализации и вывода списка установленных приложений. Получение списка деталей приложения из packagemanage — трудоемкая задача, мы сделаем это в AsyncTask. В то же время класс использует настраиваемый адаптер «custom listview applicationadapter».

ApplicationAdapter.java

Источник: russianblogs.com

Как получить список приложений, установленных пользователем на Android-устройстве?

В настоящий момент я использую следующий фрагмент кода:

List packs = getPackageManager().getInstalledPackages(0);

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

Читайте также:
Программа 1с что это и для чего и когда проводится

Raunak 5 Янв 2011 в 00:47

9 ответов

Лучший ответ

// Flags: See below int flags = PackageManager.GET_META_DATA | PackageManager.GET_SHARED_LIBRARY_FILES | PackageManager.GET_UNINSTALLED_PACKAGES; PackageManager pm = getPackageManager(); List applications = pm.getInstalledApplications(flags); for (ApplicationInfo appInfo : applications) < if ((appInfo.flags // System application >else < // Installed by user >>

  • GET_META_DATA
  • GET_SHARED_LIBRARY_FILES
  • GET_UNINSTALLED_PACKAGES

Mark Renouf 27 Мар 2014 в 00:18

Зелимир ответил правильно. Но в некоторых случаях он не предоставит вам все установленные сторонние приложения. ApplicationInfo также имеет флаг FLAG_UPDATED_SYSTEM_APP , который установлен

Приложение Qr-List

Если это приложение было установлено как обновление встроенного системного приложения

На моем смартфоне такие приложения включают Amazone Kindle, Adobe Reader, Slacker Radio и другие. Эти приложения не поставлялись с телефоном и были установлены из Google Play Store. Таким образом, их можно рассматривать как сторонние приложения.

Так что вы также можете проверить флаг FLAG_UPDATED_SYSTEM_APP .

final PackageManager packageManager = _context.getPackageManager(); List installedApplications = packageManager.getInstalledApplications(PackageManager.GET_META_DATA); for (ApplicationInfo appInfo : installedApplications) < if ((appInfo.flags // IS A SYSTEM APP >if ((appInfo.flags // APP WAS INSTALL AS AN UPDATE TO A BUILD-IN SYSTEM APP >>
Nikolai Samteladze 3 Сен 2012 в 02:11

Если я сделаю pkgAppsList.get (0), он вернет объект ResolveInfo. Как мне получить такую ​​информацию, как значок и имя пакета?

Просто сделай это:

ResolveInfo info = pkgAppsList.get(0); ApplicationInfo appInfo = info.activityInfo.applicationInfo; PackageManager packageManager = = getPackageManager(); //And then you retrieve all needed data: Drawable packageIcon = packageManager.getApplicationIcon(applicationInfo); //Icon String packageName = applicationInfo.packageName; //Package name String packageLabel = String.valueOf(packageManager.getApplicationLabel(applicationInfo)) //Package label(app name)
Anton Cherkashyn 28 Мар 2012 в 08:04
final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); final List pkgAppsList = context.getPackageManager().queryIntentActivities( mainIntent, 0);
user547995 5 Янв 2011 в 01:07

Ответ Николая правильный, но его можно оптимизировать с помощью итератора. Вот что я придумал:

Читайте также:
Программа организационного развития что это

/** * Return list of installed user applications */ static List getUserInstalledApplications(Context context) < // Get installed applications final PackageManager packageManager = context.getPackageManager(); ListinstalledApplications = packageManager.getInstalledApplications(PackageManager.GET_META_DATA); // Remove system apps Iterator it = installedApplications.iterator(); while (it.hasNext()) < ApplicationInfo appInfo = it.next(); if ((appInfo.flags it.remove(); >> // Return installed applications return installedApplications; >
Ofir 16 Авг 2016 в 07:33

Отвечая на этот вопрос для Android 11 / API 30

context.getPackageManager().getInstalledApplications(PackageManager.GET_META_DATA); Приведенный выше код возвращает список системных приложений, поскольку пользовательские приложения не отображаются по умолчанию, вам необходимо добавить разрешение ниже в манифест, чтобы получить список пользовательских приложений.

Ketan sangle 20 Ноя 2020 в 20:37

Если вы хотите узнать, как это сделать в Kotlin, это показано ниже, хотя, как упоминалось ранее Ketan sangle, вам нужно будет добавить в свой файл AndroidManifest.xml.

val packages = packageManager.getInstalledApplications(PackageManager.GET_META_DATA) for (packageInfo in packages) < if (packageInfo.flags and ApplicationInfo.FLAG_SYSTEM != 1) < //enter what you want to do here >>

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

Eric 30 Янв 2021 в 19:26

  1. pkgAppsList.get(i).activityInfo.packageName , чтобы получить packageName
  2. pkgAppsList.get(i).activityInfo.applicationInfo.loadLabel(getPackageManager()).toString() к fetch app level name

Ganesh Kamath — ‘Code Frenzy’ 12 Фев 2015 в 14:20

Класс Android PackageManager используется для получения информации о пакетах приложений, которые в настоящее время установлены на устройстве. Вы можете получить экземпляр класса PackageManager, вызвав getPackageManager (). PackageManager предоставляет методы для запроса и управления установленными пакетами и соответствующими разрешениями и т. Д. В этом примере Android мы получаем список установленных приложений в Android.

PackageManager packageManager = getPackageManager (); Список list = packageManager.getInstalledApplications (PackageManager.GET_META_DATA)

PackageManager.getInstalledApplications () возвращает список всех пакетов приложений, установленных на устройстве. Если мы установим флаг GET_UNINSTALLED_PACKAGES, будет возвращен список всех приложений, включая те, которые были удалены с помощью DONT_DELETE_DATA (частично установленные приложения с каталогом данных).

Читайте также:
Окружающий мир плешаков что за программа

Источник: question-it.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru