Коснитесь трех горизонтальных линий в правом верхнем углу экрана, а затем в меню коснитесь «Мои приложения и amp; игры. » Здесь у вас будет два варианта. 3. В верхней части экрана нажмите «Установлено». Как следует из названия, это список всех приложений, которые в настоящее время установлены на этом телефоне.
Как экспортировать установленные приложения на Android?
- Запустите приложение AppBrain.
- Выберите параметр «Управление и синхронизация».
- Войдите в ту же учетную запись Google, что и раньше.
- Нажмите «Мои списки»……
- Нажмите кнопку «Добавить все приложения». …
- Вернитесь к предыдущему экрану и нажмите кнопку «Выполнить изменения», после чего вы автоматически перейдете на страницу Market для установки приложений.
Как получить список всех установленных приложений?
На телефоне Android откройте приложение Google Play Store и нажмите кнопку меню (три строки). В меню коснитесь Мои приложения games, чтобы увидеть список приложений, установленных на вашем устройстве. Нажмите «Все», чтобы увидеть список всех приложений, которые вы загрузили на любое устройство с помощью своей учетной записи Google.
TV Apps Drawer создает список приложений, баннеры которых не отображаются на экране Android TV.
См. Также На какой iOS работает iPhone 4?
Как я могу получить список установленных приложений?
Чтобы получить текущий список приложений, установленных на вашем устройстве Android, используйте новое приложение под названием «Список моих приложений». Когда вы запускаете List My Apps, он автоматически собирает список приложений, установленных на вашем Android-устройстве. Как отмечает GHacks, в List My Apps перечислены только те приложения, которые вы установили, а не системные приложения, которые были предустановлены.
Как посмотреть недавно установленные приложения на Android?
Магазин Google Play — просмотр недавних приложений
- На главном экране Play Store ™ нажмите значок меню. (верхний левый).
- Коснитесь Мои приложения игры.
- На вкладке «Все» просмотрите приложения (самые последние отображаются вверху).
Почему я не вижу загруженные приложения?
Если вы обнаружите, что отсутствующие приложения установлены, но по-прежнему не отображаются на главном экране, вы можете удалить приложение и переустановить его. При необходимости вы также можете восстановить удаленные данные приложения на своем телефоне Android.
Как найти скрытые приложения на Android?
Как найти скрытые приложения на панели приложений
- На панели приложений коснитесь трех точек в правом верхнем углу экрана.
- Нажмите «Скрыть приложения».
- Отображается список приложений, скрытых в списке приложений. Если этот экран пуст или параметр «Скрыть приложения» отсутствует, приложения не скрываются.
Какое приложение самое популярное?
Самые популярные приложения 2020 г. (В мире)
600 миллионов | |
540 миллионов | |
503 миллиона | |
Zoom | 477 миллионов |
Как получить список всех установленных приложений на Android. О платных обзорах приложений
Как получить список всех установили приложения в Windows 10?
Просмотр всех ваших приложений в Windows 10
- Чтобы просмотреть список ваших приложений, выберите «Пуск» и прокрутите список в алфавитном порядке. …
- Чтобы выбрать, отображать ли в настройках меню «Пуск» все ваши приложения или только наиболее часто используемые, выберите «Пуск» Настройки Персонализация Начните и настройте каждый параметр, который хотите изменить.
См. Также Лучший ответ: Почему я не могу найти Sticky Notes в Windows 10?
Как я могу получить список установленного программного обеспечения удаленно?
Есть несколько способов получить список установленного программного обеспечения на удаленном компьютере:
- Выполнение запроса WMI в пространстве имен ROOTCIMV2: Запустите WMI Explorer или любой другой другой инструмент, который может запускать запросы WMI. …
- Использование интерфейса командной строки wmic: нажмите WIN + R. …
- Использование сценария Powershell:
Какое приложение лучше всего подходит для создания списка дел?
Лучшее приложение со списком дел в 2021 году — 12 наших лучших вариантов
- Todoist.
- TickTick.
- Задачи Microsoft.
- Задачи Google.
- WorkFlowy.
- Диналист.
- TaskPaper.
- ClickUp.
Как экспортировать список установленных программ?
Список установленных программ в Windows 10
- Запустите командную строку, введя командную строку в поле поиска в строке меню.
- Щелкните правой кнопкой мыши по возвращенному приложению и выберите «Запуск от имени администратора».
- В командной строке укажите wmic и нажмите Enter.
- Приглашение изменится на wmic: rootcli.
- Указать / вывести: C: InstalledPrograms.
Как получить список установленных программ в Windows?
Чтобы получить доступ к этому меню, щелкните правой кнопкой мыши меню «Пуск» Windows и нажмите «Настройка». Отсюда нажмите Приложения Приложения особенности. Список установленного у вас программного обеспечения будет отображаться в прокручиваемом списке.
Источник: linkeyprod.fr
Как получить список установленных приложений для Android и выбрать один для запуска
В начале этой недели я задавал аналогичный вопрос, но до сих пор не понимаю, как получить список всех установленных приложений, а затем выбрать одно для запуска.
Intent intent = new Intent(ACTION_MAIN); intent.addCategory(CATEGORY_LAUNCHER);
и это показывает только приложение, которое предварительно установлено или может запускать ACTION_MAIN намерения ACTION_MAIN .
Я также знаю, что могу использовать PackageManager чтобы получить все установленные приложения, но как мне использовать это для запуска определенного приложения?
ОТВЕТЫ
Ответ 1
Ниже приведен код для получения списка действий/приложений, установленных на Android:
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); List pkgAppsList = context.getPackageManager().queryIntentActivities( mainIntent, 0);
Вы получите все необходимые данные в ResolveInfo для запуска приложения. Вы можете проверить ResolveInfo Javadoc здесь.
Ответ 2
Здесь более чистый способ использования PackageManager
final PackageManager pm = getPackageManager(); //get a list of installed apps. List packages = pm.getInstalledApplications(PackageManager.GET_META_DATA); for (ApplicationInfo packageInfo : packages) < Log.d(TAG, «Installed package :» + packageInfo.packageName); Log.d(TAG, «Source dir : » + packageInfo.sourceDir); Log.d(TAG, «Launch Activity :» + pm.getLaunchIntentForPackage(packageInfo.packageName)); >// the getLaunchIntentForPackage returns an intent that you can use with startActivity()
Ответ 3
Другой способ фильтрации в системных приложениях (работает с приведенным выше примером):
Ответ 4
Вот хороший пример:
class PInfo < private String appname = «»; private String pname = «»; private String versionName = «»; private int versionCode = 0; private Drawable icon; private void prettyPrint() < Log.v(appname + «t» + pname + «t» + versionName + «t» + versionCode); >> private ArrayList getPackages() < ArrayListapps = getInstalledApps(false); /* false = no system packages */ final int max = apps.size(); for (int i=0; i return apps; > private ArrayList getInstalledApps(boolean getSysPackages) < ArrayListres = new ArrayList(); List packs = getPackageManager().getInstalledPackages(0); for(int i=0;i PInfo newInfo = new PInfo(); newInfo.appname = p.applicationInfo.loadLabel(getPackageManager()).toString(); newInfo.pname = p.packageName; newInfo.versionName = p.versionName; newInfo.versionCode = p.versionCode; newInfo.icon = p.applicationInfo.loadIcon(getPackageManager()); res.add(newInfo); > return res; >
Ответ 5
Получение списка установленных несистемных приложений
public static void installedApps() < ListpackList = getPackageManager().getInstalledPackages(0); for (int i=0; i < packList.size(); i++) < PackageInfo packInfo = packList.get(i); if ( (packInfo.applicationInfo.flags String appName = packInfo.applicationInfo.loadLabel(getPackageManager()).toString(); Log.e(«App № » + Integer.toString(i), appName); >> >
Ответ 6
Чтобы фильтровать приложения на основе sytem:
private boolean isSystemPackage(ResolveInfo ri)
Ответ 7
Чтобы получить все установленные приложения, вы можете использовать диспетчер пакетов.
List apps = getPackageManager().getInstalledPackages(0);
Для запуска вы можете использовать имя пакета
Intent launchApp = getPackageManager().getLaunchIntentForPackage(«package name») startActivity(launchApp);
Ответ 8
Вы можете найти список установленных приложений на устройстве Android, используя приведенный ниже код, «packageInfo» содержит информацию об установленных приложениях в устройстве. мы можем извлечь Intent для приложения, установленного из объект packageinfo и используя startactivity (намерение), могут запускаться выражение. зависит от вас, как вы организуете пользовательский интерфейс либо Listview или Gridview. поэтому при клике на основе позиции вы можете восстановить намерение объект и начало деятельности.
final PackageManager pm = getPackageManager(); List packages = pm.getInstalledApplications(PackageManager.GET_META_DATA); for (ApplicationInfo packageInfo : packages) < if(pm.getLaunchIntentForPackage(packageInfo.packageName)!= null !pm.getLaunchIntentForPackage(packageInfo.packageName).equals(«»)) < System.out.println(«Package Name :» + packageInfo.packageName); System.out.println(«Launch Intent For Package :» + pm.getLaunchIntentForPackage(packageInfo.packageName)); System.out.println(«Application Label :» + pm.getApplicationLabel(packageInfo)); System.out.println(«Application Label :» + pm.getApplicationIcon(packageInfo.packageName).toString()); System.out.println(«i : «+i); /*if(i==2) < startActivity(pm.getLaunchIntentForPackage(packageInfo.packageName)); break; >*/ i++; > >
Ответ 9
Если в одном пакете выше кода есть несколько пусковых установок, возникает проблема. Например: на LG Optimus Facebook для LG, MySpace для LG, Twitter для LG содержит в одном пакете имя SNS, и если вы используете выше, SNS будет повторяться. После нескольких часов исследований я пришел с кодом ниже. Кажется, хорошо работает.
private List getInstalledComponentList() throws NameNotFoundException < final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); Listril = getPackageManager().queryIntentActivities(mainIntent, 0); List componentList = new ArrayList(); String name = null; for (ResolveInfo ri : ril) < if (ri.activityInfo != null) < Resources res = getPackageManager().getResourcesForApplication(ri.activityInfo.applicationInfo); if (ri.activityInfo.labelRes != 0) < name = res.getString(ri.activityInfo.labelRes); >else < name = ri.activityInfo.applicationInfo.loadLabel( getPackageManager()).toString(); >componentList.add(name); > > return componentList; >
Ответ 10
private List getInstalledComponentList() < Intent componentSearchIntent = new Intent(); componentSearchIntent.addCategory(Constants.COMPONENTS_INTENT_CATEGORY); componentSearchIntent.setAction(Constants.COMPONENTS_INTENT_ACTION_DEFAULT); Listril = getPackageManager().queryIntentActivities(componentSearchIntent, PackageManager.MATCH_DEFAULT_ONLY); List componentList = new ArrayList(); Log.d(LOG_TAG, «Search for installed components found » + ril.size() + » matches.»); for (ResolveInfo ri : ril) < if (ri.activityInfo != null) < componentList.add(ri.activityInfo.packageName);// + ri.activityInfo.name); Log.d(LOG_TAG, «Found installed: » + componentList.get(componentList.size()-1)); >> return componentList; >
Я прокомментировал часть, в которой он получил название активности, но это довольно просто.
Ответ 11
У меня было требование отфильтровать системные приложения, которые пользователь действительно не использует (например, «com.qualcomm.service», «службы обновления» и т.д.). В конечном итоге я добавил еще одно условие для фильтрации списка приложений. Я просто проверил, имеет ли приложение «намерение запуска».
Итак, полученный код выглядит как.
PackageManager pm = getPackageManager(); List apps = pm.getInstalledApplications(PackageManager.GET_GIDS); for (ApplicationInfo app : apps) < if(pm.getLaunchIntentForPackage(app.packageName) != null) < // apps with launcher intent if((app.flags // updated system apps >else if ((app.flags // system apps >else < // user installed apps >appsList.add(app); > >
Ответ 12
Чистое решение, успешно удаляющее системные приложения
Идея этого решения заключается в том, что основная деятельность каждого системного приложения не имеет значка пользовательской активности. Этот метод дает мне отличный результат:
public static Set getInstalledApps(Context ctx) < final PackageManager packageManager = ctx.getPackageManager(); final ListallInstalledPackages = packageManager.getInstalledPackages(PackageManager.GET_META_DATA); final Set filteredPackages = new HashSet(); Drawable defaultActivityIcon = packageManager.getDefaultActivityIcon(); for(PackageInfo each : allInstalledPackages) < if(ctx.getPackageName().equals(each.packageName)) < continue; // skip own app >try < // add only apps with application icon Intent intentOfStartActivity = packageManager.getLaunchIntentForPackage(each.packageName); if(intentOfStartActivity == null) continue; Drawable applicationIcon = packageManager.getActivityIcon(intentOfStartActivity); if(applicationIcon != null !defaultActivityIcon.equals(applicationIcon)) < filteredPackages.add(each); >> catch (PackageManager.NameNotFoundException e) < Log.i(«MyTag», «Unknown package name » + each.packageName); >> return filteredPackages; >
Ответ 13
private static boolean isThisASystemPackage(Context context, PackageInfo packageInfo ) < try < PackageInfo sys = context.getPackageManager().getPackageInfo(«android», PackageManager.GET_SIGNATURES); return (packageInfo != null packageInfo.signatures != null sys.signatures[0].equals(packageInfo.signatures[0])); >catch (NameNotFoundException e) < return false; >>
Ответ 14
Получить все приложения:
PackageManager pm = getContext().getPackageManager(); List apps = pm.getInstalledApplications(0);
Проверьте, открыто ли установленное приложение:
if((app.flags 0) < String app_package = app.packageName; Intent launchIntent = context.getPackageManager().getLaunchIntentForPackage(app_package); context.startActivity(launchIntent);
Ответ 15
У меня есть другое решение:
ArrayList myAppsToUpdate; // How to get the system and the user apps. public ArrayList getAppsToUpdate() < PackageManager pm = App.getContext().getPackageManager(); ListinstalledApps = pm.getInstalledApplications(0); myAppsToUpdate = new ArrayList(); for (ApplicationInfo aInfo : installedApps) < if ((aInfo.flags // System apps >else < // Users apps AppInfo appInfo = new AppInfo(); appInfo.setAppName(aInfo.loadLabel(pm).toString()); appInfo.setPackageName(aInfo.packageName); appInfo.setLaunchActivity(pm.getLaunchIntentForPackage(aInfo.packageName).toString()); try < PackageInfo info = pm.getPackageInfo(aInfo.packageName, 0); appInfo.setVersionName(info.versionName.toString()); appInfo.setVersionCode(«» + info.versionCode); myAppsToUpdate.add(appInfo); >catch (NameNotFoundException e) < Log.e(«ERROR», «we could not get the user apps»); >> > return myAppsToUpdate; >
Ответ 16
вы можете использовать это:
PackageManager pm = getApplicationContext().getPackageManager(); List activityList = pm.queryIntentActivities(shareIntent, 0); for (final ResolveInfo app : activityList) < if ((app.activityInfo.name).contains(«facebook»)) < // facebook >if ((app.activityInfo.name).contains(«android.gm»)) < // gmail >if ((app.activityInfo.name).contains(«mms»)) < // android messaging app >if ((app.activityInfo.name).contains(«com.android.bluetooth»)) < // android bluetooth >>
Ответ 17
public static List getApplications(Context context)
Источник: utyatnishna.ru
Как получить список установленных приложений для Android и выбрать одно для запуска
В начале этой недели я задавал аналогичный вопрос, но до сих пор не понимаю, как получить список всех установленных приложений, а затем выбрать одно для запуска. Я пробовал:
Intent intent = new Intent(ACTION_MAIN); intent.addCategory(CATEGORY_LAUNCHER);
и это показывает только приложение, которое предварительно установлено или может запускать ACTION_MAIN намерения ACTION_MAIN . Я также знаю, что могу использовать PackageManager чтобы получить все установленные приложения, но как мне использовать это для запуска определенного приложения?
2Real 23 апр. 2010, в 05:03
Поделиться
Как вы можете получить только информацию о выбранном приложении в списке?
Pedrum 06 фев. 2014, в 01:01
Поделиться:
android-intent
17 ответов
Лучший ответ
Ниже приведен код для получения списка действий/приложений, установленных на Android:
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); List pkgAppsList = context.getPackageManager().queryIntentActivities( mainIntent, 0);
Вы получите все необходимые данные в ResolveInfo для запуска приложения. Вы можете проверить ResolveInfo Javadoc здесь.
Karan 23 апр. 2010, в 07:09
Поделиться
Как я могу начать один из них? Я получил информацию Activity внутри ResolveInfo, но мне не удается запустить его.
Spidey 29 сен. 2010, в 19:56
Неважно, нашел это. Я должен создать новое намерение, используя полное имя класса (пакет + класс).
Spidey 29 сен. 2010, в 20:00
Можем ли мы получить категории приложений, чтобы перечислить их по-другому . .
Sam-In-TechValens 23 май 2013, в 05:04
Как вы можете получить только информацию о выбранном приложении в списке?
Pedrum 06 фев. 2014, в 01:01
Я хотел понять политику магазина android / play относительно того, что мое приложение читает и хранит список всех приложений и, возможно, связывается с сервером. Есть ли какие-либо рекомендации?
dowjones123 30 июнь 2015, в 20:07
Karthikeyan Ve 10 май 2016, в 08:35
RmK 27 июль 2016, в 08:52
VersionName? Я скучал?
Sabri Meviş 07 нояб. 2018, в 11:46
я могу отфильтровать платные и неоплаченные приложения?
Pemba Tamang 28 нояб.
2018, в 09:10
Показать ещё 7 комментариев
Здесь более чистый способ использования PackageManager
final PackageManager pm = getPackageManager(); //get a list of installed apps. List packages = pm.getInstalledApplications(PackageManager.GET_META_DATA); for (ApplicationInfo packageInfo : packages) < Log.d(TAG, «Installed package :» + packageInfo.packageName); Log.d(TAG, «Source dir : » + packageInfo.sourceDir); Log.d(TAG, «Launch Activity :» + pm.getLaunchIntentForPackage(packageInfo.packageName)); >// the getLaunchIntentForPackage returns an intent that you can use with startActivity()
Nelson Ramirez 23 фев. 2011, в 23:11
Поделиться
Работает гр8. Но когда попробовал это на Android 4.0.3, ничего не печатается !! Любая подсказка ??
Saurabh Verma 24 июль 2012, в 08:13
Убедитесь, что вы не отфильтровываете сообщения журнала отладки.
QED 27 дек.
2013, в 21:22
Этот код работает, однако, есть ли у вас какие-либо идеи о том, как поместить эти списки приложений в ListView?
androidBoomer 22 янв. 2014, в 03:40
David T. 24 янв. 2014, в 00:43
androidBoomer 24 янв. 2014, в 01:35
David T. 24 янв. 2014, в 20:55
androidBoomer 27 янв. 2014, в 01:13
Это прекрасно работает, но может занять несколько секунд в зависимости от количества установленных приложений. Есть ли более быстрый способ загрузить это?
Pkmmte 19 апр. 2014, в 19:50
user3233280 23 нояб. 2014, в 17:39
Показать ещё 7 комментариев
Другой способ фильтрации в системных приложениях (работает с приведенным выше примером):
Kenneth Evans 13 дек. 2011, в 03:45
Поделиться
Это лучший ответ для фильтрации системных приложений.
Bjorn Tipling 04 янв. 2012, в 09:31
Но я фильтрую приложения, такие как настройки, карты или . как их перечислить
Ata 05 апр. 2012, в 12:32
«? True: false» часть вашего оператора возврата избыточна
k2col 26 май 2017, в 16:07
упростить возврат ((pkgInfo.applicationInfo.flags
Bhavesh Rangani 05 окт. 2017, в 12:01
как отфильтровать платные приложения?
Pemba Tamang 28 нояб. 2018, в 09:11
Большие пальцы вниз для использования побитового оператора с! = 🙁
Ondrej Sotolar 24 апр. 2019, в 14:04
Kenneth Evans 27 апр.
2019, в 06:59
Это просто вопрос стиля. Для меня побитовые операторы нарушают читабельность. Вместо того, чтобы просто пролистать простое утверждение if, я должен остановиться и подумать о последствиях оператора.
Ondrej Sotolar 29 апр. 2019, в 09:36
Показать ещё 6 комментариев
Вот хороший пример:
class PInfo < private String appname = «»; private String pname = «»; private String versionName = «»; private int versionCode = 0; private Drawable icon; private void prettyPrint() < Log.v(appname + «t» + pname + «t» + versionName + «t» + versionCode); >> private ArrayList getPackages() < ArrayListapps = getInstalledApps(false); /* false = no system packages */ final int max = apps.size(); for (int i=0; i return apps; > private ArrayList getInstalledApps(boolean getSysPackages) < ArrayListres = new ArrayList(); List packs = getPackageManager().getInstalledPackages(0); for(int i=0;i PInfo newInfo = new PInfo(); newInfo.appname = p.applicationInfo.loadLabel(getPackageManager()).toString(); newInfo.pname = p.packageName; newInfo.versionName = p.versionName; newInfo.versionCode = p.versionCode; newInfo.icon = p.applicationInfo.loadIcon(getPackageManager()); res.add(newInfo); > return res; >
king9981 08 нояб. 2011, в 17:27
Поделиться
Как вы выполняете один из тех, если вам нужно? Я имею в виду, вы можете получить намерение?
Ton 11 июнь 2013, в 23:16
Отлично.
Спасибо за Ваш ответ. Я использовал ваш ответ в своем заявлении, и у меня небольшая проблема с размером значка. большинство из них нормальные, а некоторые очень большие или маленькие. Как я могу это исправить. Есть ли у вас какие-либо идеи? Спасибо
Meysam Valuyan 25 авг. 2016, в 22:40
Получение списка установленных несистемных приложений
public static void installedApps() < ListpackList = getPackageManager().getInstalledPackages(0); for (int i=0; i < packList.size(); i++) < PackageInfo packInfo = packList.get(i); if ( (packInfo.applicationInfo.flags String appName = packInfo.applicationInfo.loadLabel(getPackageManager()).toString(); Log.e(«App № » + Integer.toString(i), appName); >> >
XXX 21 апр. 2013, в 09:04
Поделиться
это показывает только мое приложение
Choletski 09 окт.
2015, в 06:48
Чтобы фильтровать приложения на основе sytem:
private boolean isSystemPackage(ResolveInfo ri)
SamCsharpAs3 10 янв. 2011, в 13:12
Поделиться
Чтобы получить все установленные приложения, вы можете использовать диспетчер пакетов.
List apps = getPackageManager().getInstalledPackages(0);
Для запуска вы можете использовать имя пакета
Intent launchApp = getPackageManager().getLaunchIntentForPackage(«package name») startActivity(launchApp);
Arvind 16 март 2012, в 06:49
Поделиться
Это ближе к делу. Мы можем установить правильную проверку, выяснив наше необходимое приложение.
Noman 26 фев. 2014, в 07:26
Вы можете найти список установленных приложений на устройстве Android, используя приведенный ниже код, «packageInfo» содержит информацию об установленных приложениях в устройстве. мы можем извлечь Intent для приложения, установленного из объект packageinfo и используя startactivity (намерение), могут запускаться выражение. зависит от вас, как вы организуете пользовательский интерфейс либо Listview или Gridview. поэтому при клике на основе позиции вы можете восстановить намерение объект и начало деятельности.
final PackageManager pm = getPackageManager(); List packages = pm.getInstalledApplications(PackageManager.GET_META_DATA); for (ApplicationInfo packageInfo : packages) < if(pm.getLaunchIntentForPackage(packageInfo.packageName)!= null !pm.getLaunchIntentForPackage(packageInfo.packageName).equals(«»)) < System.out.println(«Package Name :» + packageInfo.packageName); System.out.println(«Launch Intent For Package :» + pm.getLaunchIntentForPackage(packageInfo.packageName)); System.out.println(«Application Label :» + pm.getApplicationLabel(packageInfo)); System.out.println(«Application Label :» + pm.getApplicationIcon(packageInfo.packageName).toString()); System.out.println(«i : «+i); /*if(i==2) < startActivity(pm.getLaunchIntentForPackage(packageInfo.packageName)); break; >*/ i++; > >
Prashant Agrawal 20 фев.
2012, в 10:34
Поделиться
Вы пропустили оператор for в этом коде, который включает где-то я .
Shaun 13 сен. 2012, в 18:16
Если в одном пакете выше кода есть несколько пусковых установок, возникает проблема.
Например: на LG Optimus Facebook для LG, MySpace для LG, Twitter для LG содержит в одном пакете имя SNS, и если вы используете выше, SNS будет повторяться. После нескольких часов исследований я пришел с кодом ниже. Кажется, хорошо работает.
private List getInstalledComponentList() throws NameNotFoundException < final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); Listril = getPackageManager().queryIntentActivities(mainIntent, 0); List componentList = new ArrayList(); String name = null; for (ResolveInfo ri : ril) < if (ri.activityInfo != null) < Resources res = getPackageManager().getResourcesForApplication(ri.activityInfo.applicationInfo); if (ri.activityInfo.labelRes != 0) < name = res.getString(ri.activityInfo.labelRes); >else < name = ri.activityInfo.applicationInfo.loadLabel( getPackageManager()).toString(); >componentList.add(name); > > return componentList; >
kakopappa 06 нояб. 2012, в 05:40
Поделиться
Как я могу отобразить всю эту информацию в виде списка?
David_D 22 окт. 2013, в 16:20
У меня было требование отфильтровать системные приложения, которые пользователь действительно не использует (например, «com.qualcomm.service», «службы обновления» и т.д.). В конечном итоге я добавил еще одно условие для фильтрации списка приложений.
Я просто проверил, имеет ли приложение «намерение запуска».
Итак, полученный код выглядит как.
PackageManager pm = getPackageManager(); List apps = pm.getInstalledApplications(PackageManager.GET_GIDS); for (ApplicationInfo app : apps) < if(pm.getLaunchIntentForPackage(app.packageName) != null) < // apps with launcher intent if((app.flags // updated system apps >else if ((app.flags // system apps >else < // user installed apps >appsList.add(app); > >
joecizac 24 апр. 2015, в 20:56
Поделиться
private List getInstalledComponentList() < Intent componentSearchIntent = new Intent(); componentSearchIntent.addCategory(Constants.COMPONENTS_INTENT_CATEGORY); componentSearchIntent.setAction(Constants.COMPONENTS_INTENT_ACTION_DEFAULT); Listril = getPackageManager().queryIntentActivities(componentSearchIntent, PackageManager.MATCH_DEFAULT_ONLY); List componentList = new ArrayList(); Log.d(LOG_TAG, «Search for installed components found » + ril.size() + » matches.»); for (ResolveInfo ri : ril) < if (ri.activityInfo != null) < componentList.add(ri.activityInfo.packageName);// + ri.activityInfo.name); Log.d(LOG_TAG, «Found installed: » + componentList.get(componentList.size()-1)); >> return componentList; >
Я прокомментировал часть, в которой он получил название активности, но это довольно просто.
Spidey 06 фев. 2011, в 03:10
Поделиться
Чистое решение, успешно удаляющее системные приложения
Идея этого решения заключается в том, что основная деятельность каждого системного приложения не имеет значка пользовательской активности. Этот метод дает мне отличный результат:
public static Set getInstalledApps(Context ctx) < final PackageManager packageManager = ctx.getPackageManager(); final ListallInstalledPackages = packageManager.getInstalledPackages(PackageManager.GET_META_DATA); final Set filteredPackages = new HashSet(); Drawable defaultActivityIcon = packageManager.getDefaultActivityIcon(); for(PackageInfo each : allInstalledPackages) < if(ctx.getPackageName().equals(each.packageName)) < continue; // skip own app >try < // add only apps with application icon Intent intentOfStartActivity = packageManager.getLaunchIntentForPackage(each.packageName); if(intentOfStartActivity == null) continue; Drawable applicationIcon = packageManager.getActivityIcon(intentOfStartActivity); if(applicationIcon != null !defaultActivityIcon.equals(applicationIcon)) < filteredPackages.add(each); >> catch (PackageManager.NameNotFoundException e) < Log.i(«MyTag», «Unknown package name » + each.packageName); >> return filteredPackages; >
Источник: overcoder.net