3

我想列出已安装和系统应用程序。系统应用程序是指预安装的应用程序(在制造时安装的应用程序)。为此,我对所有使用的应用程序进行了分类(ApplicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0——它们是系统应用程序,其他是已安装的应用程序。现在我的问题是我想在单击列表项时启动这些应用程序。但我无法启动系统应用程序,如联系人、拨号器等......

如何以编程方式启动系统应用程序或如何过滤掉可启动的系统应用程序?

4

1 回答 1

4

我找不到确切的答案。但我认为这会有所帮助

List<PackageInfo> list = packageManager.getInstalledPackages(0);
for (PackageInfo pi : list) {
 try {
    ApplicationInfo appInfo = getPackageManager() .getApplicationInfo(pi.packageName, 0);
        //check whether the app is launchable or not
    if (packageManager .getLaunchIntentForPackage(appInfo.packageName) != null) {
     //check whether the app is an installed / system app
     if ((appInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
        //system apps.........
     } else {
        //installed apps............
     }
    }

   } catch (Exception e) {}
}
于 2013-03-13T08:43:08.307 回答