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

时间:2015-05-19 17:37:37

标签: android android-library applicationcontext

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

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

还有其他办法吗?通过在Android文件系统中搜索可能只是Java解决方案吗?

请帮忙!

1 个答案:

答案 0 :(得分:1)

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

然而,有一个hackish解决方法(单行,突出显示它是一个丑陋的黑客):

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文件系统中是否存在私有app目录。 你不能列出另一个应用程序的私人目录,或打开它的任何文件,但你可以通过尝试chdir来检查目录本身是否存在。