Permiso de Android para limitar INSTALL_REFERRER para reproducir la tienda

Estoy configurando el seguimiento de campañas utilizando analíticas personalizadas (no google analytics) y configurando un receptor para eso. Mi receptor parece estar funcionando, pero cuando lo instalo me sale una advertencia de pelusa de android:

ExportedReceiver: Receiver does not require permission 

Parece que cualquier aplicación android antigua podría llamar a mi aplicación con la intención com.android.vending.INSTALL_REFERRER que no quiero. Solo debería ser Google Play Store (o cualquier otra aplicación del sistema android que instalara mi aplicación en la tienda de reproducción) enviando esa intención a mi aplicación.

Así que he intentado averiguar cómo configurar un permiso que limita las aplicaciones válidas a la tienda de reproducción, pero no puedo averiguar la forma correcta de configurar el permiso de acuerdo con la documentación:

Https://developer.android.com/guide/topics/manifest/permission-element.html

¿Podría alguien ayudarme a configurar un permiso que limita las aplicaciones mi aplicación va a aceptar esta intención de la tienda de juego? Aquí está mi configuración actual del receptor:

  <receiver android:name=".referrals.MyCampaignTrackingReceiver" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="com.android.vending.INSTALL_REFERRER"/> </intent-filter> </receiver> 

Traté de establecer un permiso para el receptor en el nivel normal , pero que impidió que la aplicación de recibir la intención de la tienda.

INSTALL_REFERRER permiso de difusión no es una gran preocupación. Suponiendo que usted sabe que necesita manejar esta transmisión sólo una vez, justo después de la instalación, y toma medidas para manejarla sólo una vez, un atacante tendrá que saber cuando su aplicación se ha instalado y de alguna manera enviar esta difusión antes de la aplicación playstore, que parece improbable.

android:permission establecer el atributo android:permission en su receptor. Para que se vea algo como esto:

 <receiver android:name=".referrals.MyCampaignTrackingReceiver" android:enabled="true" android:exported="true" android:permission="android.permission.CLEAR_APP_CACHE"> <intent-filter> <action android:name="com.android.vending.INSTALL_REFERRER"/> </intent-filter> </receiver> 

El uso de "android.permission.CLEAR_APP_CACHE" aquí es arbitrario; puedes usar cualquier permiso que PLAY Store tenga y no sea posible para que aplicaciones de terceros tengan (porque el nivel de protección de CLEAR_APP_CACHE es las aplicaciones del sistema o de la system|signature sistema firmadas con El mismo certificado que la solicitud que declaró este permiso, en este caso la plataforma). Por ejemplo, al mirar a través del manifiesto de Play Store, "com.android.vending.permission.C2D_MESSAGE" podría ser otro buen candidato.

Espero que esto ayude.

  • Cómo administrar backstack de android
  • ¿Cómo puedo interceptar el intento cuando el usuario abre otra aplicación?
  • Cómo eliminar la tarea de inicio automático en Android
  • ¿Por qué la aplicación de mensajería recibe mensajes cuando se detiene la aplicación?
  • Cómo implementar beaviour de cierre de sesión en android
  • Cambiar Actividades sin el uso de una Intención
  • Eliminación de la pila de actividad completa de Android en SDK antiguos (que carecen de FLAG_ACTIVITY_CLEAR_TASK)
  • Java y Android: ¿Cómo abrir varios archivos con una intención?
  • La celebración de la conexión Bluetooth bluetooth a través de múltiples actividades
  • Saltar a la actividad directa de los padres cuando se presiona
  • No obtener sms incluso cuando se establece la mayor prioridad e instaló primero
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.