我计划不仅在 Google Play 上分发我的应用程序,而且在其他几个市场上分发,例如 Opera Mobile Store、Yandex Store、Amazon App Store。对于“评分”按钮,我需要链接到商店页面。是否可以查明使用哪个市场下载我的应用程序?
当然,我可以为每个市场编译单独的 APK,但我想制作一个通用 APK。OpenIAB 库解决了不同的 IAP API,但现在我遇到了链接到市场的问题。
我计划不仅在 Google Play 上分发我的应用程序,而且在其他几个市场上分发,例如 Opera Mobile Store、Yandex Store、Amazon App Store。对于“评分”按钮,我需要链接到商店页面。是否可以查明使用哪个市场下载我的应用程序?
当然,我可以为每个市场编译单独的 APK,但我想制作一个通用 APK。OpenIAB 库解决了不同的 IAP API,但现在我遇到了链接到市场的问题。
一般来说,如果您使用一些广告来分发您的应用程序,您可以使用 Google 的一些工具:
简而言之,您需要将 Google Analitics 插入您的应用程序(当然,如果您还没有使用它),并使用它调用的工具:
然后您可以签署分期付款的接收方:
<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
}