如何将安装引用者字符串传递给我的应用程序

时间:2017-04-27 13:55:13

标签: android install-referrer

我已经在我的应用中实现了安装引荐来源机制,我会在InstallReferrerReceiver::onReceive()中收到它:

public class InstallReferrerReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {

        String referrer = intent.getStringExtra("referrer");

        Log.v(Constants.APP_TAG, "InstallReferrerReceiver: " + referrer);

        // And then how to pass referrer to my App?
    }
}

根据我看到的内容,它在安装完成后立即调用,但应用程序尚未启动,因为只要我点击GooglePlay应用商店中的open,该应用就会完成。

那么如何将引荐来源字符串传递给我的应用来处理呢?

我尝试将其存储在defaultSharedPreferences中,但在应用程序运行后我无法读取它。

public class InstallReferrerReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {

        Log.v(Constants.APP_TAG, "Version code: " + BuildConfig.VERSION_CODE);

        String referrer = intent.getStringExtra("referrer");

        Log.v(Constants.APP_TAG, "InstallReferrerReceiver: " + referrer);

        Log.v(Constants.APP_TAG, "Store referrer in " + PreferenceManager.getDefaultSharedPreferencesName(context.getApplicationContext()));
        final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
        sharedPreferences.edit().putString(Constants.REFERRAL, referrer).apply();
        Log.v(Constants.APP_TAG, "Stored referrer is " + sharedPreferences.getString(Constants.REFERRAL, null));
    }
}

但似乎getDefaultSharedPreferences指的是InstallReferrerReceiver中的受限上下文,与应用程序中使用的上下文不同。

那怎么解决这个问题呢? 我只是精确地将它用于私人参数,它不涉及任何广告系列!

1 个答案:

答案 0 :(得分:0)

尝试使用以下方法将数据存储在SharedPref中:

 SharedPreferences preferences = context.getSharedPreferences("my_prefs", Context.MODE_PRIVATE);
 Editor preferencesEditor = preferences.edit();
 preferencesEditor.putString(Constants.REFERRAL, referrer);
 preferencesEditor.commit();