我找到了这个答案How to get a list of installed android applications and pick one to run
但它并没有完全回答我的问题,虽然我只需要找到一个特定的应用程序是否安装,我在库中没有上下文,所以我可以调用getPackageManager()并获取应用程序列表。
还有其他办法吗?通过在Android文件系统中搜索可能只是Java解决方案吗?
请帮忙!
答案 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来检查目录本身是否存在。