弄清楚Android应用程序是通过网络市场还是使用Android Market应用程序安装的

时间:2012-01-09 10:40:30

标签: android google-play

现在,当用户想要下载应用程序时,他可以使用手机上安装的Android Market应用程序或通过网络市场进行操作。

是否有可能弄清楚这个应用程序的安装方式?

2 个答案:

答案 0 :(得分:6)

Android Cracking Blog

中找到了这个
private boolean InstalledFromMarketEasy() {

 String pname = this.getPackageName();
  PackageManager pm = this.getPackageManager();
  String installPM = pm.getInstallerPackageName(pname);

  if ( installPM == null ) {
    // Definitely not installed from Android Market
    return false;
  }
  else if ( installPM.equals("com.google.android.feedback") ) {
    // Installed from the Android Market
    return true;
  }

  return false;
}

根据评论,在某些手机上,这仍然会返回null。

尝试使用此方法查看手机是否返回null。如果没有,请查看使用Android Market Vending而不是WebInterface时installPM是否发生更改。

如果没有改变,我认为无法检查它的安装方式,因为Vending.apk收到了推送通知。

答案 1 :(得分:0)

最好应该是

else if ( installPM.equals("com.android.vending") ) {
        // Installed from the Android Market
        return true;
      }