1

설치 및 제거 추적을 위해 AppsFlyer를 사용하고 있습니다. 나는 문서를 읽고 그것을 통합했다. 나는 Interation 테스트 애플 리케이션을 통합 검증에 사용했다.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> 

을 사용하고는

<receiver android:name="com.appsflyer.MultipleInstallBroadcastReceiver" android:exported="true"> 
    <intent-filter> 
    <action android:name="com.android.vending.INSTALL_REFERRER" /> 
    </intent-filter> 
</receiver> 

하지만 자신의 통합 테스트는 오류를 보여줍니다 (가 CampaignTrackingReceiver 일 이전에 작성된 의미). 통합 테스트 응용 프로그램이 성공적인 통합을 표시하는 것보다 MultipleInstallBroadcastReceiver 대신 SingleInstallBroadcastReceiver를 사용하는 경우

누군가가이 경우에 나를 도울 수

답변

2

기본적으로 SingleInstallBroadcastReceiver 당신이 의도를 잡을 것 같은 텐트 필터의 기존의 수신기 (예.의 '지원'또 다른 수신기가있을 때 사용하기위한 것입니다 및 동일한 인 텐트 필터를 수신 할 수있는 다른 가능한 수신기에 대해이를 다시 브로드 캐스트합니다. 이것은 SingleInstallBroadcastReceiver가 그렇게 존재하지 않기 때문입니다.

반면 MultipleInstallBroadcastReceiver는 다른 동일한 인 텐트 필터 수신기 (올바른 용어인지 확실하지 않음)의 '지원'으로 간주되며, 다른 '지원하는'수신기와 결합하면 무한 브로드 캐스트가 발생할 수 있습니다 리시버 사이의 의도. 이러한 이유로 두 종류의 수신기가 있습니다.

자신의 브로드 캐스트 리시버를 구현하고 (의도, 상황) 어떤 수신기의을 onReceive 전화 :

그러나, 여기 당신이 하나 개의 수신기를 선언 사용하여 동일한을 달성 (더 많은 과정을 제어 할) 수있는 방법 당신이 필요합니다 당신의 AndroidManifest.xml에

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); 
    } 
} 

당신이 위의 구성 수신기를 선언하고 이 그냥, 당신은 다른 사람이있는 경우 (즉, 의도 필터와 매니페스트에있는 유일한 수신기 있는지 확인) 수신기의 onReceive 방법에 그들에게 전화 :

<receiver 
    android:name="yourpackagename.MyCombinedReceiver" 
    android:exported="true" > 
    <intent-filter> 
     <action android:name="com.android.vending.INSTALL_REFERRER" /> 
    </intent-filter> 
</receiver> 
+0

당신을 감사합니다, 나중에 확인 – user2228673

+0

더 ambiguilty이 없을 것 같은 내가,이 솔루션을 따를 것이다! 그것이 당신을 도운다면이 대답을 받아 들인 대답으로 표시하십시오. :) – shachar0n

관련 문제