0

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

我想开发一个可以显示用户安装的所有应用程序的应用程序,但是

我不明白如何得到它们。

使用getExternalStorageDirectory()

还是有其他方法?

4

3 回答 3

0

您可以参考这篇文章,它做了类似的事情...您可能需要对其进行一些修改,因为它会过滤掉系统应用程序的...

于 2012-07-27T06:02:14.737 回答
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" />
于 2012-07-27T05:44:54.397 回答
0

尝试这个:

 final Intent intent= new Intent(Intent.ACTION_MAIN, null);
 intent.addCategory(Intent.CATEGORY_LAUNCHER);
 final List mylist= context.getPackageManager().queryIntentActivities(intent, 0);
于 2012-07-27T05:13:28.113 回答