Получить список всех лаунчеров в Android - PullRequest
8 голосов
/ 30 мая 2011

В моем приложении я хочу показать список всех доступных модулей запуска (для домашнего экрана) на этом конкретном телефоне Android. Можно ли получить какую-то информацию от ОС Android и как мне сделать этот вызов?

Спасибо!

С уважением Daniel

Ответы [ 3 ]

19 голосов
/ 04 января 2012

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

PackageManager pm = getPackageManager();
Intent i = new Intent(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
List<ResolveInfo> lst = pm.queryIntentActivities(i, 0);
for (ResolveInfo resolveInfo : lst) {
    Log.d("Test", "New Launcher Found: " + resolveInfo.activityInfo.packageName);
}
1 голос
/ 24 октября 2018

Приведенный выше фрагмент кода НЕ работает точно, так как в результате в списке программ запуска также есть приложение с настройками системы, имя пакета которого - com.android.settings.Этот неожиданный результат происходит как на моем Pixel 2 (Android 8.0), так и на Nexus 6 (Android 7.1).

1 голос
/ 30 мая 2011

Попробуйте следующее:

  1. Получить список установленных приложений:

    Список pkgList = getPackageManager (). GetInstalledPackages (PackageManager.GET_ACTIVITIES);

  2. Переберите этот список и получите активность запуска, используя:

    .

    getPackageManager () getLaunchIntentForPackage (PACKAGENAME);

Подробнее читайте здесь: PackageManager . Надеюсь, это поможет.

...