我必须在我的应用程序中实现引用链接功能,例如 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
答案 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),并测试你真的没有收到广播。