Тест интеграции AppsFlyer не пройден
Я использую AppsFlyer для отслеживания установки и удаления. Я просмотрел документы и интегрировал их. Я использовал их Интеграционное тестовое приложение для проверки интеграции.
Согласно документу необходимо использовать MultipleInstallBroadcastReceiver, если у нас уже есть получатель, прослушивающий INSTALL_REFERRER. Я уже использую
<receiver
android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
следовательно, в соответствии с документами, которые я использовал в качестве первого получателя (означает, что он написан раньше, чем CampaignTrackingReceiver)
<receiver android:name="com.appsflyer.MultipleInstallBroadcastReceiver" android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
но их тест интеграции показывает ошибку. если я использую SingleInstallBroadcastReceiver вместо MultipleInstallBroadcastReceiver, то приложение тестирования интеграции показывает успешную интеграцию.
может ли кто-нибудь помочь мне в этом случае
1 ответ
По сути, SingleInstallBroadcastReceiver предназначен для использования, когда у вас есть другой получатель, который "поддерживает" другие существующие получатели с тем же фильтром намерений (например, перехватит намерение, а затем повторно передаст его другим возможным получателям, которые могут прослушивать тот же самый фильтр). фильтр намерений). Это связано с тем, что SingleInstallBroadcastReceiver не является таковым.
MultipleInstallBroadcastReceiver, с другой стороны, считается "поддерживающим" других приемников с тем же фильтром намерений (не уверен, что это правильный термин), и в сочетании с другим "поддерживающим" приемником он может вызывать бесконечную передачу намерения между приемники. Вот почему у вас есть эти два вида приемников.
Однако вот как вы можете добиться того же, используя объявление одного получателя (и больше контролировать процесс):
Реализуйте свой собственный BroadcastReceiver и вызовите onReceive(контекст, намерение) любого получателя, который вам нужен:
public class MyCombinedReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Google Analytics receiver
new CampaignTrackingReceiver().onReceive(context, intent);
// AppsFlyer SingleInstallBroadcastReceiver
new SingleInstallBroadcastReceiver().onReceive(context, intent);
}
}
В вашем AndroidManifest.xml объявите ваш получатель, который вы настроили выше, и убедитесь, что это единственный получатель, который у вас есть в вашем манифесте с этим фильтром намерений (если у вас есть другие, просто вызовите их в методе onReceive вашего получателя):
<receiver
android:name="yourpackagename.MyCombinedReceiver"
android:exported="true" >
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>