Метод onReceive() приемника широковещательной передачи не вызывается с помощью Install Referrer

Мое приложение должно получить Install Referrer после установки. Я создал собственный приемник, который расширяет BroadcastReceiver. Пожалуйста, смотрите код ниже:

CustomReferrerReceiver

public class CustomReferrerReceiver extends BroadcastReceiver {

private String referrer = "";

@Override
public void onReceive(Context context, Intent intent) {
    if (intent.getAction().equals("com.android.vending.INSTALL_REFERRER")) {
        Bundle extras = intent.getExtras();
        if (extras != null) {
            referrer = extras.getString("referrer");
        }
        Log.i("REFERRER", "Referrer is: " + referrer);
    }
    Toast.makeText(context, "TEST MESSAGE!!! My referrer is here",
            Toast.LENGTH_LONG).show();
 }
}

Android манифест

android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"
        android:exported="true" >
        <intent-filter>
            <action android:name="com.android.vending.INSTALL_REFERRER" />
        </intent-filter>
    </receiver>

    <receiver
        android:name="com.example.boris.myapplication.CustomReferrerReceiver"
        android:exported="true" >
        <intent-filter>
            <action android:name="com.android.vending.INSTALL_REFERRER" />
        </intent-filter>
    </receiver>

Как мое приложение не установлено из Google Play, так как я понимаю, я не получу Install Referrer. Итак, я решил использовать Toast, чтобы увидеть, вызывается ли хотя бы метод onReceive. И я вижу, что это не называется.

Итак, вопрос: нормально ли, что метод onReceive() вообще не вызывается? Или это что-то не так с моим кодом? Если он вообще не должен вызываться, как я могу проверить, работает ли он (кроме запуска adb в командной строке)?

0 ответов

Другие вопросы по тегам