我找到了这个答案如何获得安装的android应用程序列表并选择一个运行
但它不能完全回答我的问题,虽然我只需要找到是否安装了特定的应用程序,但我在库中没有上下文,因此我可以调用getPackageManager()并获得应用程序列表。
还有别的办法吗?也许只有通过在Android文件系统中搜索Java解决方案?
请帮忙!
您通常必须将Context
参数添加到库API中,例如初始化函数,并从使用它的应用程序传递上下文。
然而,有一个hack式的解决方法(单行,强调这是一个丑陋的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"); }
此代码将检查android文件系统中是否存在私有应用程序目录。你不能列出另一个应用程序的私有目录,或者从它打开任何文件,但是你可以通过在那里尝试chdir来检查目录本身是否存在。