如何确定哪个 android 市场用于下载我的应用程序

How to determine which android market was used to download my app

我计划不仅在 Google Play 上发布我的应用程序,而且在其他几个市场上发布,例如 Opera Mobile Store、Yandex Store、Amazon App Store。对于 "Rate" 按钮,我需要 link 来存储页面。是否可以找出用于下载我的应用程序的市场?

当然,我可以为每个市场编译单独的 APK,但我想制作一个通用 APK。不同的 IAP API 由 OpenIAB 库解决,但现在我遇到了 link 上市的问题。

一般来说,如果您使用一些广告来分发您的应用程序,您可以使用 Google:

的一些工具

简而言之,您需要将 Google Analitics 添加到您的应用程序中(当然,如果您尚未使用它的话),并使用名为:

的工具

Campaign Measurement

然后您可以签署分期付款的接管人:

<receiver
        android:name=".system.RefferReceiver"
        android:exported="true">
        <intent-filter>
            <action android:name="com.android.vending.INSTALL_REFERRER" />
        </intent-filter>
    </receiver>

并且您可以处理接收器内部的逻辑:

public class RefferReceiver extends BroadcastReceiver {

@Override
public void onReceive(final Context context, Intent intent) {
    String referrer = intent.getStringExtra("referrer");
    //do some logic
}

已编辑: 抱歉,我没有正确阅读您的问题。如果你只是想知道你的应用程序的市场来源你可以使用:

 String installerMarket = getPackageManager().getInstallerPackageName("your_package_name");
    if (installerMarket == null){
        //do some default case
    }
    else if ("com.android.vending".equals(installerMarket)) {
        //link to google play
    } else  if ("com.amazon.venezia".equals(installerMarket)){
        //link to amazon
    } else if //you got the idea, you need to know the name of every market  store installer
    }