Asegúrate de que la aplicación de Android se haya instalado desde Play-Store

Recientemente he descubierto la aplicación BlackMarket, es un juego de aplicaciones de Google Play Store, donde estas personas toman una aplicación de pago de Play Store y permiten a sus usuarios descargarla y usarla gratis.

Como desarrollador que planea cobrar un dólar por mi aplicación, esto me molesta, y me gustaría asegurarme de que mi aplicación se instaló a través de Play-Store, o cualquier tienda que aprobé.

Supongo que la única manera de verificar este tipo de cosas es a través del seguimiento de la campaña, pero desde Google Analytics v2, el seguimiento de la campaña se realiza con un receptor en el Jar.

¿Existe alguna otra forma de determinar el origen de la instalación de mi aplicación? ¿Hay una manera de interceptar los datos de seguimiento de campañas?

Gracias.

Compruebe este enlace aquí . Entonces

 PackageManager pm = getPackageManager(); String installationSource = pm.getInstallerPackageName(getPackageName()); 

Cuando se instala desde el marcado, el origen de la installationSource devolverá algo como com.google.android% o com.android.vending% . Sin embargo, esto cambia y usted tiene que mantener (apoyar) en caso de un cambio – de lo contrario volverá nulo (de depurador) o algún otro nombre de paquete, de alguna otra aplicación (los no deseados :))

La mejor manera que he encontrado para saber si una aplicación es de Play Store es lo que sugirió g00dy: usando el nombre del paquete del instalador.

 String packageName = appContext.getPackageName(); String installerPackage = appContext.getPackageManager().getInstallerPackageName(packageName); 

Si la aplicación se descarga en Play Store (incluso si la aplicación se compra con un PC), installerPackage debería ser "com.vending.google".

Encontré este http://developer.android.com/google/play/licensing/licensing-reference.html#lvl-summary

 public boolean allowAccess() { long ts = System.currentTimeMillis(); if (mLastResponse == LicenseResponse.LICENSED) { // Check if the LICENSED response occurred within the validity timeout. if (ts <= mValidityTimestamp) { // Cached LICENSED response is still valid. return true; } } else if (mLastResponse == LicenseResponse.RETRY && ts < mLastResponseTime + MILLIS_PER_MINUTE) { // Only allow access if we are within the retry period or we haven't used up our // max retries. return (ts <= mRetryUntil || mRetryCount <= mMaxRetries); } return false; } 
  • La aplicación para Android no se muestra en Google Android Market para tablets
  • ID de la unidad de anuncio de Android AdMob real en los canales Beta y Alpha
  • Cámara Android: requiere cámara frontal o posterior
  • Error de facturación de Android en la aplicación: se requiere autenticación
  • Obtener el atributo '' android: icon 'atributo: no es un valor de cadena "al cargar un APK en la tienda de reproducción
  • Cómo obtener el icono de aplicaciones de Google reproducir dinámicamente
  • ¿Se ha suspendido mi aplicación de Google Play, sugerencias?
  • ¿Cómo distribuir y actualizar remotamente una aplicación privada de Android en cientos de dispositivos que posee?
  • Google Play "Plataformas nativas" que muestra commons-io-2.4.jar
  • Cómo publicar una revista en Android
  • Problema de permiso Google Play
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.