【问题标题】:How to launch system apps programmatically or how to filter out launchable system apps?如何以编程方式启动系统应用程序或如何过滤掉可启动的系统应用程序?
【发布时间】:2013-02-28 23:38:52
【问题描述】:

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

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

【问题讨论】:

标签: android system installed-applications android-applicationinfo


【解决方案1】:

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

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) {}
}

【讨论】:

    猜你喜欢
    • 2011-03-02
    • 2014-02-27
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多