텐핑 서비스를 활용하고 계실 경우 유저해빗을 통한 어뷰징을 막을 수 있는 장점이 있습니다. 단, 아래와 같이 추가적인 작업이 필요합니다.

주의! 안드로이드에서는 하나의 앱에서 하나의 리시버만 설정할 수 있습니다.

1. 유저해빗 인스톨 리시버를 한 개만 활용할 경우

AndroidManifest.xml 파일에 다음과 같이 입력합니다.

<receiver
   android:name="io.userhabit.service.main.UserhabitInstallReceiver"
   android:exported="true">
 <intent-filter>
   <action android:name="com.android.vending.INSTALL_REFERRER" />
 </intent-filter>
</receiver>

2. 인스톨 리시버를 두 개 이상 활용할 경우

하나의 리시버를 직접 구현하고 해당 리시버에서 다른 리시버들을 호출 합니다.

아래와 같이 하나의 인스톨 리시버를 생성합니다.

public class MultiInstallReceiver extends BroadcastReceiver {
   @Override
   public void onReceiver(Context context, Intent intent) {
    UserhabitInstallReceiver userhabitReceiver = new UserhabitInstallReceiver();
    userhabitReceiver.onReceive(context, intent);

    //다른 서비스의 리시버들을 동일한 방식으로 호출합니다.
   }
}

위와 같이 작성한 리시버를 AndroidManifext.xml 에 등록합니다.

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

3. 인스톨 리시버 확인 방법

인스톨 리시버로부터 오는 데이터일 경우 실제 플레이스토어에서 설치 시에 데이터를 넘겨주기 때문에 테스트에 어려움이 있습니다. adb shell을 이용하여 인스톨 리시버를 호출하여 설정이 올바르게 되었는지 테스트합니다.