获取从市场安装的应用列表

时间:2013-01-13 11:07:24

标签: android package google-play

我有代码列出了所有已安装的应用程序:

    final PackageManager pm = getPackageManager();
    //get a list of installed apps.
            List<ApplicationInfo> packages = pm
                    .getInstalledApplications(PackageManager.GET_META_DATA);

            for (ApplicationInfo packageInfo : packages) {

                Log.d("Tag", "Installed package :" + packageInfo.packageName); 

            }

如何区分系统应用和从市场上安装的应用?我想我想到了搜索&#34; android&#34;的非常规方法。在包名称中,将其标记为系统应用程序。有没有一种传统方式让我只找到第三方(来自Market)的应用程序?

1 个答案:

答案 0 :(得分:0)

您可以在检索到的所有软件包上调用getInstallerPackageName()。虽然这可以被篡改,但它应该足以满足您的目的。

您还可以使用以下内容:

List<ApplicationInfo> apps = getPackageManager().getInstalledApplications(0);
for (int i=0; i < apps.size(); i++)
{
    if ((apps.get(i).applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0)
    {
         //System app
   }
}