如何获取用户安装的所有应用程序?

问题描述:

我怎样才能获得用户安装的所有应用程序?如何获取用户安装的所有应用程序?

我想开发一种可呈现由用户安装的所有应用程序的应用程序,但

我不明白如何让他们。

使用getExternalStorageDirectory()

还是有其他方法?

+0

我认为这是Android,通过该函数的名称?请给它加标签。在Windows机器上,在Mac机器上或在Symbian手机上,你所要求的内容是非常不同的。 – Amadan 2012-07-27 04:54:34

+1

也许阅读这个问题 - 答案可能会帮助你http://stackoverflow.com/questions/2695746/how-to-get-a-list-of-installed-android-applications-and-pick-one-to-run – 2012-07-27 05:03:19

试试这个:

final Intent intent= new Intent(Intent.ACTION_MAIN, null); 
intent.addCategory(Intent.CATEGORY_LAUNCHER); 
final List mylist= context.getPackageManager().queryIntentActivities(intent, 0); 

你可以得到所有关于安装PKG的信息:

ArrayList<PackageInfo> res = new ArrayList<PackageInfo>(); 
PackageManager pm = ctx.getPackageManager(); 
List<PackageInfo> packs = pm.getInstalledPackages(0); 

for(int i=0;i<packs.size();i++) { 
    PackageInfo p = packs.get(i); 
    String description = (String) p.applicationInfo.loadDescription(pm); 
    String label= p.applicationInfo.loadLabel(pm).toString(); 
    String packageName = p.packageName; 
    String versionName = p.versionName; 
    String versionCode = p.versionCode; 
    String icon = p.applicationInfo.loadIcon(pm); 
//Continue to extract other info about the app... 
} 

注:添加此权限清单文件:

<uses-permission android:name="android.permission.GET_TASKS" /> 

你可以参考这post它做了类似的...你可能需要修改它,因为它过滤掉了系统应用程序的...