代码之家  ›  专栏  ›  技术社区  ›  user1628978

使用带收藏的应用程序小工具收集已安装应用程序的列表?

  •  0
  • user1628978  · 技术社区  · 11 年前

    我对带有集合的应用程序窗口小部件的概念完全陌生,更不用说应用程序窗口了。我想创建一个应用程序小工具,它可以收集用户安装的应用程序的列表,并将它们放在应用程序小工具的列表视图中,可以进行检查。小部件会相应地更新列表。 我环顾四周,看看是否有办法做到这一点,我发现将应用程序小部件与集合一起使用可能是一种可能性。 我这样做正确吗?任何帮助我做到这一点的资源或技巧都是相关的!

    2 回复  |  直到 11 年前
        1
  •  0
  •   Booger    11 年前

    你是在要求每个人都从你那里编写你的应用程序(这是一个过于笼统的问题)。也许你应该把你的问题分解成更容易管理的问题,并自己做一些初步研究,以更好地定义你的问题。

    你可以在一个小部件中放置一个列表视图(你可以在Android中的任何控件中放置几乎任何UI元素,因为一切都只是View的一个子类)。

    要获取用户已安装的所有应用程序的列表,请使用PackageManager(应用程序列表捕获在列表中,列表是集合的一种类型):

            PackageManager packageManager = null;
            List<ApplicationInfo> appsList = new ArrayList<ApplicationInfo>();
            try {
                packageManager = getPackageManager();
                if (packageManager != null) {
                    appsList = packageManager.getInstalledApplications(0);
                }
            } catch (final Exception e1) {
                Log.v("PackageManager", "This is my error: ", e1);
            }
    
        2
  •  0
  •   Nitin Sethi    11 年前

    此API将在一些HTC设备等中崩溃。我们按照以下方式查找至少有一个“活动”的应用程序。

            List<String> installedPackageNamesList = new ArrayList<String>();
    
            Intent intent = new Intent(Intent.ACTION_MAIN);
            intent.addCategory(Intent.CATEGORY_LAUNCHER);
    
            List<ResolveInfo> resolveInfoList = context.getPackageManager().queryIntentActivities(intent, 0);
    
            for(ResolveInfo info : resolveInfoList){
                if(info.activityInfo != null && info.activityInfo.packageName != null){
                    installedPackageNamesList.add(info.activityInfo.packageName);
                }
            }