Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android编程中,如何将应用程序组织到文件夹中?_Android_Directory_Launcher - Fatal编程技术网

在Android编程中,如何将应用程序组织到文件夹中?

在Android编程中,如何将应用程序组织到文件夹中?,android,directory,launcher,Android,Directory,Launcher,我正在开发一个启动器应用程序。我想将应用程序自动组织到文件夹中,主题包括游戏、社交网络、娱乐、工具。。。但我不知道根据应用程序的信息来知道它是什么类型的 示例:据我所知,没有直接的方法可以实现这一点。 我唯一能想到的就是在应用程序的标签名称中找到一些关键词。 诸如此类: private ArrayList<PackageInfo> searchPackageForString(PackageManager pm, String find){ List<PackageIn

我正在开发一个启动器应用程序。我想将应用程序自动组织到文件夹中,主题包括游戏、社交网络、娱乐、工具。。。但我不知道根据应用程序的信息来知道它是什么类型的


示例:

据我所知,没有直接的方法可以实现这一点。 我唯一能想到的就是在应用程序的标签名称中找到一些关键词。 诸如此类:

private ArrayList<PackageInfo> searchPackageForString(PackageManager pm, String find){
    List<PackageInfo> packs = pm.getInstalledPackages(0);
    ArrayList<PackageInfo> results = new ArrayList<>();
    for (PackageInfo pi : packs) {
        if(pi.applicationInfo.loadLabel(pm).toString().toLowerCase().contains(find)){
            results.add(pi);
        }
    }
    return results;
}
我没有试过,但我想这是唯一可能的方向。 当然我可能错了

编辑: 现在,我看了你所附的图片,我认为他们通过查找应用程序进行检查,以响应行动意图。 这里有一些例子:

这个问题与编程有关吗?是的,Android编程我使用intent来查找应用程序。但是,按主题将应用程序分类到文件夹中,则没有好的解决方案。当然,没有完美的解决方案,因为您所要求的内容没有API。我想我的答案+我给你的链接是你能得到的最接近的。非常感谢你。我会尝试找到更好的解决方案,然后与您分享。
searchPackageForString(getPackageManager(), "game");