【问题标题】:Referral linking in Android like mCent applicationAndroid 中的推荐链接,如 mCent 应用程序
【发布时间】:2016-01-25 10:19:38
【问题描述】:

我必须在我的应用程序中实现推荐链接功能,例如 mCent 应用程序。为此,我完成了以下代码行。

我的应用程序Manifest 文件。在<application >..... </application>,我已经为它做了一些条目。

 <service android:name="com.google.android.gms.analytics.CampaignTrackingService" />
 <receiver
 android:name=".receivers.InstallReceiver"
 android:exported="true" >
 <intent-filter>
 <action android:name="com.android.vending.INSTALL_REFERRER" />
 </intent-filter>
 </receiver>

我的BrodcastRecevier类如下,请查看。

public class InstallReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        String rawReferrer = intent.getStringExtra("referrer");
        if (rawReferrer != null) {
            trackReferrerAttributes(rawReferrer, context);
        }
    }

    private void trackReferrerAttributes(String rawReferrer, Context context) {
        String referrer = "";

        try {
            referrer = URLDecoder.decode(rawReferrer, "UTF-8");
        } catch (UnsupportedEncodingException e) {
            return;
        }

        if (Strings.isNullOrEmpty(referrer)) {
            return;
        }

        Uri uri = Uri.parse('?' + referrer); // appends ? for Uri to pickup query string

        String memberCode;
        try {
            referringMember = uri.getQueryParameter("mcode");
        } catch (UnsupportedOperationException e) {
            return;
        }

        SharedPreferences.Editor editor = context.getSharedPreferences(
            BuildConfig.PACKAGE_NAME, Context.MODE_PRIVATE).edit();

        if (!Strings.isNullOrEmpty(memberCode)) {
            editor.putString(Constants.REFERRER_CODE, memberCode);
        }

        String referralMedium = uri.getQueryParameter("tc");
        if (!Strings.isNullOrEmpty(referralMedium)) {
            editor.putString("referral_medium", referralMedium);
        }

        editor.apply();
    }
}

但我没有收到来自上述代码的任何推荐... 我已经创建了这样的推荐链接

 https://play.google.com/store/apps/details?id=tv.CaseGaurd&referrer=ravindrakushwaha

我上面的推荐链接或朋友有什么错误,我在BroadcastRecevier 班级或Manifest file 中做错了什么

【问题讨论】:

  • 编辑您的问题,展示您如何/在哪里启动意图或要求广播以接收InstallReceiver
  • @Bonatti ...感谢您的建议.. 但是这些 Brodcast 接收者不需要任何 Intent 来接收事件..我们知道,谷歌播放会抛出 com.android.vending.INSTALL_REFERRER ,当我们安装了应用程序,而不是我的班级从上面的代码中收到这些......我的问题是我没有收到我用我的应用程序链接创建的数据
  • 我真的很惊讶为什么人们只在有人问这个问题时才投反对票......如果他们不知道问题的解决方案,那么他们为什么要投反对票......这些网站适用于不要帮助反对投票的人

标签: android referrals


【解决方案1】:

From this documentation我发现动作过滤器是(在清单中):

 <!-- Used for install referrer tracking-->
  <receiver android:name="YOUR_RECEIVER"
 android:exported="true">
  <intent-filter>
      <action android:name="com.android.vending.INSTALL_REFERRER" />
  </intent-filter>
 </receiver>

还要确保您的 Receiver 在那个真正的包裹中".receivers.InstallReceiver",但是package com.example.app.receivers;...您的包裹真的是com.example.app吗?

(我认为您正在使用 Google Play 商店应用程序).​​..另外,关于您的反对意见,这可能是您问题的措辞不好,或者您没有对您的问题表现出努力,最后,请注意这是一个“免费使用的社区论坛”,而且人们是随机的......

最后,在 Receiver 中放置一个断点,发送一个广播(例如使用 adb),并测试您是否真的没有收到广播。

【讨论】:

  • 感谢您的宝贵努力
  • 您的问题解决了吗?如果你这样做了,你能写下哪里出了问题。 Stackoverflow 作为问题和解决方案的存储库“工作”,因此如果这修复/帮助您解决了问题,请使用“v”符号表示问题已得到解答。如果没有,请编辑您的问题,并添加正在发生的事情。
  • 感谢您的努力 +1 ,为此......你能告诉我推荐链接不适用于已安装的应用程序吗??请帮助我
  • 什么意思? "com.android.vending.INSTALL_REFERRER" 仅用于安装。您要检查新安装还是所有安装?当用户单击指向您的应用程序的链接时发送此广播事件,Google Play 拦截意图,然后使用户能够安装它....如果您想“计算”所有已安装的应用程序,我可以建议使用https://play.google.com/apps/publish/上的统计数据
  • 先生...实际上我想从我的 SMS 或 MAIL 上的 LINK 获取数据...是否安装了应用程序...但是现在我正在从链接获取数据,仅当他的应用程序未安装在我的设备上时...,但是我想在我的设备上安装应用程序时获取数据
猜你喜欢
  • 2019-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多