0

我正在尝试在活动中创建一个按钮来启动所有已安装的应用程序,因为主屏幕上的应用程序启动器按钮打开所有应用程序。这将是一个很大的例子

4

1 回答 1

0

下面的代码为您提供了所有已安装的应用程序。我正在过滤掉可以启动的应用程序。如果您想要所有应用程序,无论它们是否可以启动,那么您可以删除 if (mIntent != null) 检查。

   List<PackageInfo> apps = getPackageManager().getInstalledPackages(0);
    for (int i = 0; apps != null && i < apps.size(); i++) {
        PackageInfo p = apps.get(i);


        Intent mIntent = getPackageManager().getLaunchIntentForPackage(
                p.packageName);
        if (mIntent != null) {
            PackageManager pm = getApplicationContext().getPackageManager();
            ApplicationInfo appInfo = null;
            try {
                appInfo = pm.getApplicationInfo(p.packageName, 0);
            } catch (NameNotFoundException e) {
                e.printStackTrace();
            }

            String appName = pm.getApplicationLabel(appInfo).toString();
            Drawable appIcon = appInfo.loadIcon(getApplicationContext()
                    .getPackageManager());

        }
    }
于 2012-08-27T13:02:04.983 回答