获取库中已安装应用程序的列表 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 来检查该目录本身是否存在。
我找到了这个答案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 来检查该目录本身是否存在。