如何通过Android代码获取Android Play商店安装的应用程序包?

时间:2013-06-11 11:24:14

标签: android package android-applicationinfo

android中有3种类型的应用

  1. Android系统应用
  2. 从Android Play商店安装的应用
  3. 通过本地apk安装的应用程序(通常由开发人员或任何其他来源安装)
  4. 我使用以下代码

    获得第一类应用程序包(即系统应用程序)
    private boolean isSystemPackage(ResolveInfo ri) {
    return (ri.activityInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
    }
    

    我想在Android设备上获取第二类应用程序包(即从Android Play商店安装的应用程序)....请告诉我该如何获得?

    即使我获得本地安装的应用程序(即第3类),我也可以通过忽略所有包中的第1和第3类应用程序包来找到我的解决方案....

1 个答案:

答案 0 :(得分:2)

您应该使用getInstallerPackageName,它会检索安装包的应用程序的包名称。这确定了包裹来自哪个市场:

http://developer.android.com/reference/android/content/pm/PackageManager.html#getInstallerPackageName%28java.lang.String%29

对于Play商店,您应该检查它是否来自 com.android.vending