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

Posted

技术标签:

【中文标题】如何确定使用哪个 android 市场下载我的应用程序【英文标题】:How to determine which android market was used to download my app 【发布时间】:2015-09-19 16:53:12 【问题描述】:

我计划不仅在 Google Play 上分发我的应用程序,还在其他几个市场上分发,例如 Opera Mobile Store、Yandex Store、Amazon App Store。对于“评分”按钮,我需要链接到商店页面。是否可以查明使用哪个市场下载我的应用程序?

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

【问题讨论】:

【参考方案1】:

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

简而言之,您需要将 Googgle 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
    

【讨论】:

但它只适用于 Google Play 服务,对吧?如果应用不是通过 Google Play 安装的,将不会收到推荐人?

以上是关于如何确定使用哪个 android 市场下载我的应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何确定哪个文件对应于 Android 应用程序上的屏幕?

如何确定我的应用程序是不是在 Android 上运行 [重复]

Android小部件:如何确定单击了哪个按钮?

确定iOS应用程序安装的来源[重复]

海外都有哪些著名的第三方 Android 应用市场

如何确定正在使用哪个 USB 端口?