Android 正在获取要在其他应用中打开的选定应用的列表

Android 正在获取要在其他应用中打开的选定应用的列表,android,Android,我正在尝试制作一个应用程序,该应用程序将在列表视图中显示选定的应用程序。我找到了此链接,但它只显示设备上安装的所有应用程序。 我想展示的是我制作并安装在设备上的所有应用程序。所以我想知道我是否可以使用package name或app name逐个选择它们,然后使用package manager将其放在列表视图中 如果您有任何想法,我们将不胜感激。这是您可以做的,过滤包含您的软件包名称的软件包: List<PackageInfo> packs = context.getPack

我正在尝试制作一个应用程序,该应用程序将在列表视图中显示选定的应用程序。我找到了此链接,但它只显示设备上安装的所有应用程序。 我想展示的是我制作并安装在设备上的所有应用程序。所以我想知道我是否可以使用package name或app name逐个选择它们,然后使用package manager将其放在列表视图中


如果您有任何想法,我们将不胜感激。

这是您可以做的,过滤包含您的软件包名称的软件包:

    List<PackageInfo> packs = context.getPackageManager() 
            .getInstalledPackages(0); 

    public static final String MY_APP_PATTERN="com.myapps";

    for (int i = 0; i < packs.size(); i++) { 
        PackageInfo packageInfo = packs.get(i); 
        if (((packs.get(i).applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 1)) { 
            continue; 
        } 

       if(packageInfo.packageName.contains(MY_APP_PATTERN)){
           Lod.d(DEBUG_TAG,"This package belongs to me: "+packageInfo.packageName)

           packageInfo.applicationInfo.loadLabel( 
                context.getPackageManager()).toString(); 
           packageInfo.packageName; 
           packageInfo.versionCode; 
           packageInfo.applicationInfo.loadIcon(context 
                .getPackageManager())
       }
    } 
List packs=context.getPackageManager()
.getInstalledPackages(0);
公共静态最终字符串MY\u APP\u PATTERN=“com.myapps”;
对于(inti=0;i

您也可以使用自己的模式匹配器从开始进行筛选。

您的意思是要获取所有用户安装的应用程序或您制作的应用程序(您编写的应用程序名为com.myapps.*)吗?是!只有我制作的应用程序,但如何才能只获取包含我的应用程序模式的用户?请尝试运行代码并查看其输出。将我的应用程序模式更改为你的应用程序包通用名称。哇,这真的很有效!谢谢你马上接受并投票!还有一个问题,先生,我怎样才能使用这个条件获得应用程序图标?当然,你可以用它做任何你想做的事情。一个建议:由于一些开发人员不遵循标准图标大小,请为您的imageView使用固定高度/宽度。