如何使用 packageManager 在 android java 中获取克隆的应用程序?

Posted

技术标签:

【中文标题】如何使用 packageManager 在 android java 中获取克隆的应用程序?【英文标题】:How can I get the cloned apps in android java using packageManager? 【发布时间】:2019-09-19 19:13:43 【问题描述】:

我正在开发一个新的 android 启动器应用程序,并且我成功地能够使用 getPackageManager() 将所有已安装的应用程序检索到列表视图中。

但是,现在我在一些允许克隆您的应用程序的手机上进行测试时遇到了问题,例如我可以拥有 Whatsapp1 和 Whatsapp2(克隆)。现在我的代码没有检索到第二个whatsapp,只显示了一个。

我已经尝试为我的 packageManager 设置不同的意图标志,但它仍然不起作用。

第一种方法:

final PackageManager pm = globalContext.getPackageManager();
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);

第二种方法:

PackageManager manager;
manager = globalContext.getPackageManager();
Intent i = new Intent(Intent.ACTION_MAIN, null);
i.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> availableActivities = manager.queryIntentActivities(i, 0);

【问题讨论】:

谁能帮助解决上述情况? 任何更新......? 你找到方法了吗? 是的,使用 List。它提供了 2 个配置文件,您将在第二个配置文件中找到克隆的应用程序。基本上,称为工作资料。 @Racker 【参考方案1】:

不,您不能,因为包管理器仅根据包名称来区分应用程序,例如:com.whatsapp Whatsapp1 和 Whatsapp2 具有相同的包名称。

而且我认为克隆应用程序功能纯粹是制造商的事情。

【讨论】:

感谢您的回答!但是,我安装了一些其他启动器,它们能够获取克隆的应用程序。

以上是关于如何使用 packageManager 在 android java 中获取克隆的应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

使用 PackageManager 获取包名称 [重复]

如何使用 Windows PowerShell PackageManager (OneGet) 安装 Node.js?

Android中获取应用程序(包)的信息-----PackageManager的使用

Mockito Mocking Android Context PackageManager Exception

如何将 yarn 设置为 Angular CLI 的默认 packageManager?我得到“无法读取 null 的属性‘值’”

Android:PackageManager.getSystemAvailableFeatures() 在 Nexus9 上没有按预期工作