首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android:获取包括系统应用程序在内的所有已安装应用程序列表的问题

Android:获取包括系统应用程序在内的所有已安装应用程序列表的问题
EN

Stack Overflow用户
提问于 2016-07-14 13:23:08
回答 4查看 2K关注 0票数 3

我有一个listview显示所有安装的应用程序,包括一些系统应用程序,但不显示画廊,联系人,消息应用程序。请告诉我如何获得所有这些系统应用程序。以下是我的代码

代码语言:javascript
运行
复制
public static List getInstalledApplication(Context c)
    {
       // return c.getPackageManager().getInstalledApplications(PackageManager.GET_META_DATA);

        List<ApplicationInfo> installedApps = new ArrayList<ApplicationInfo>();
        PackageManager pm = c.getPackageManager();
        List<ApplicationInfo> apps = pm.getInstalledApplications(0);

        for(ApplicationInfo app : apps) {
            //checks for flags; if flagged, check if updated system app
            if((app.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) == 1) {
                installedApps.add(app);
                //it's a system app, not interested
            } else if ((app.flags & ApplicationInfo.FLAG_SYSTEM) == 1) {
                //Discard this one
                //in this case, it should be a user-installed app
              //  installedApps.add(app);
            } else {
                installedApps.add(app);
            }
        }
        return installedApps;
    }

告诉我我哪里弄错了。帮我写一些代码。

EN

Stack Overflow用户

发布于 2016-07-14 13:33:33

试试这段代码

代码语言:javascript
运行
复制
final PackageManager pm = getPackageManager();
//get a list of installed apps.
List<ApplicationInfo> 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()

编辑1个

代码语言:javascript
运行
复制
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
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38366063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档