3

android中有3种类型的应用程序

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

我使用下面的代码获得了第一类应用程序包(即系统应用程序)

private boolean isSystemPackage(ResolveInfo ri) {
return (ri.activityInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
}

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

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

4

1 回答 1

2

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

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

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

于 2013-06-11T12:09:06.310 回答