Установить отслеживание нужно было экспортировать или нет?
Я отслеживаю мои установки двумя способами, которые вы можете увидеть здесь в моем манифесте:
<receiver
android:name="com.google.android.gms.tagmanager.InstallReferrerReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<receiver
android:name=".tracking.ReferralReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
Второй получатель генерирует предупреждение о пуховке, а первый нет. Означает ли это, что Google знает, что для их InstallReferrerReceiver
и знаете, что это безопасно для экспорта?
PS: я знаю, что могу использовать tools:ignore="ExportedReceiver"
,
1 ответ
INSTALL_REFERRER
намерение транслируется при установке приложения из магазина Google Play.android:exported="true"
означает, что получателю разрешено получать широковещательные намерения из других приложений. Вы этого хотите, иначе вы не сможете получить событие, отправленное другим приложением (я не уверен, что это приложение или система Play Store).
Однако, если вы проверите документацию для android:exported
его значение по умолчанию равно true, если оно имеет хотя бы один <intent-filter>
иначе это ложно.
Итак, чтобы подвести итог, вам нужно android:exported="true"
чтобы поймать событие. Но пропустить это свойство тоже можно, так как значение по умолчанию true
для ваших получателей (но безопаснее иметь его).
О предупреждении Lint: он распознает имя, и поэтому он знает, что первая версия безопасна.