在Android中引用链接,如mCent应用程序

时间:2016-01-25 10:19:39

标签: android referrals

我必须在我的应用程序中实现引用链接功能,例如 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();
    }
}

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

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

我的推荐链接或朋友之间是否有任何错误,我在BroadcastRecevier课程或Manifest file

中做错了什么

1 个答案:

答案 0 :(得分:2)

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商店应用)...另外,关于您的down down,,这可能是您的问题写错了,或者您没有展示您的问题,最后,请注意这是一个免费使用的社区论坛&#34;,人们随机......

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