获取库中已安装应用程序的列表 Android

Get list of installed applications within library Android

我找到了这个答案How to get a list of installed android applications and pick one to run

但它并没有完全回答我的问题,尽管我只需要查找是否安装了特定的应用程序,我在库中没有上下文,所以我可以调用 getPackageManager() 并获取应用程序列表。

还有其他方法吗?也许 Java 唯一的解决方案是在 Android 文件系统中搜索?

请帮忙!

您通常必须将 Context 参数添加到您的库 API,例如初始化函数,并从使用它的应用程序传递上下文。

但是,有一个 hackish 解决方法(单行,以强调它是一个丑陋的 hack):

if (Runtime.getRuntime().exec(new String[]{"/system/bin/sh","-c","cd /data/data/jackpal.androidterm"}).waitFor() == 0) { Log.d("!!!", "Android Terminal Emulator app is installed"); }

此代码将检查私有应用程序目录是否存在于 Andorid 文件系统中。 您不能列出另一个应用程序的私有目录,也不能从中打开任何文件,但是您可以通过尝试 chdir 来检查该目录本身是否存在。