Как передать строку установки реферера в мое приложение
В моем приложении реализован механизм установки реферера, и я получил его в 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?
}
}
Согласно тому, что я вижу, он вызывается сразу после завершения установки, но приложение еще не запущено, как это будет сделано после того, как я нажму на open
в магазине приложений GooglePlay.
Итак, как я могу передать строку реферера моему приложению для его обработки?
Я пытался сохранить его в 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 ответ
Попробуйте сохранить данные в SharedPrefs, используя:
SharedPreferences preferences = context.getSharedPreferences("my_prefs", Context.MODE_PRIVATE);
Editor preferencesEditor = preferences.edit();
preferencesEditor.putString(Constants.REFERRAL, referrer);
preferencesEditor.commit();