代码之家  ›  专栏  ›  技术社区  ›  Tecksky Android

从play store安装后无法检索引用代码

  •  3
  • Tecksky Android  · 技术社区  · 7 年前

    我需要在我的应用程序中集成推荐代码实现,以便创建url: https://play.google.com/store/apps/detailsid=MY_PACKAGE_NAME&referrer=USER_REFERRAL_CODE

    并为此创建了广播接收器

    InstallReferrerReceiver。Java语言

    public class InstallReferrerReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals("com.android.vending.INSTALL_REFERRER")) {
            String referrer = "";
            Bundle extras = intent.getExtras();
            if (extras != null) {
                referrer = extras.getString("referrer");
            }
            Log.e(TAG, "Referal Code Is: " + referrer);
            AppMethod.setStringPreference(context, AppConstant.PREF_REF_ID, referrer);
           }
        }
     }
    

    <receiver
            android:name="com.gum.getumoney.Service.InstallReferrerReceiver"
            android:exported="true">
            <intent-filter>
                <action android:name="com.android.vending.INSTALL_REFERRER" />
            </intent-filter>
    </receiver>
    

    从play store安装应用程序后,有我的接收器呼叫,但我在引用代码中得到了空值

    我需要获得将应用程序提交给其他用户的用户代码。但这样做我会失败。我还使用shell脚本在终端中测试了我的接收器,它对我来说很好。

    因此,如果这段代码有任何问题,请向我说明这一点,或者向我建议另一种方法。谢谢

    1 回复  |  直到 7 年前
        1
  •  2
  •   Brian    7 年前

    验证您正在测试的播放商店url是否正确,是否具有测试的预期值。遵循以下定义的方案:

    https://play.google.com/store/apps/details?id=com.example.application
    &referrer=utm_source%3Dgoogle
    %26utm_medium%3Dcpc
    %26utm_term%3Drunning%252Bshoes
    %26utm_content%3Dlogolink
    %26utm_campaign%3Dspring_sale
    

    有关更多信息,请查看以下网址的文档: https://developers.google.com/analytics/devguides/collection/android/v4/campaigns

    例如,进行转介:

     public void sendReferral(Context context) {
                Intent sendIntent = new Intent();
                sendIntent.setAction(Intent.ACTION_SEND);
                sendIntent.putExtra(Intent.EXTRA_TEXT, getInvitationMessage()), PreferencesManager.getInstance().getKeyReferrerUrl()));
                sendIntent.putExtra(Intent.EXTRA_SUBJECT, context.getString(R.string.invitation_subject));
                sendIntent.setType("text/plain");
                context.startActivity(Intent.createChooser(sendIntent, context.getResources().getText(R.string.invitation_extended_title)));
            }
    
    private String getInvitationMessage(){
      String playStoreLink = "https://play.google.com/store/apps/details?id=app.package.com&referrer=utm_source=";
      return invitationId = playStoreLink + getReferralId();
    }
    

    public class InstallReferrerReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
    
            if (intent == null) {
                return;
            }
    
            String referrerId = intent.getStringExtra("referrer");
    
            if (referrerId == null){
                return;
            }
    }