-1

我必须在我的应用程序(如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

4

1 回答 1

2

从这个文档中我发现动作过滤器是(在清单中):

 <!-- 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>

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

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

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

于 2016-01-25T11:23:39.537 回答