2010-10-08 20 views
5

Tengo una aplicación que me gustaría distribuir a través del mercado y también desde mi propio sitio. ¿Cómo puedo, usando solo una compilación y una clave, verificar si la aplicación se descargó del mercado o no?android: detectar si la aplicación se descargó del mercado

This question se responde al tener el código firmado con claves diferentes, pero idealmente queremos una compilación única.

+0

Por lo como sé, esto no se pudo hacer en una construcción. –

+0

Sergey: Ponlo como respuesta y lo marcaré como correcto. Por lo que puedo decir, tienes razón en que esto no es posible. – Martyn

Respuesta

1

Parece que esto no se puede hacer.

+1

Tenga en cuenta que solo no se puede hacer dadas las limitaciones del OP. Podría hacerlo firmando Market build con una clave única y comparando una suma de comprobación de la clave con un valor almacenado dentro de la aplicación. Personalmente, prefiero personalizar la secuencia de comandos de compilación para las versiones de lanzamiento y depuración. –

0

No sé si esto realmente se correlaciona o no, pero si usted puede leer mercado /data/system/packages.xml aplicaciones parecen tener instalador = "com.google.android.feedback", mientras que se incluye con el la compilación del sistema y las compiladas localmente no.

+1

Recientemente, Android Market tiene el paquete "com.android.vending". –

1

En mi Android 1.5 las aplicaciones solo de teléfonos instaladas a través de Market aparecen en "Mis descargas" en Market App, por lo que la pregunta es si puede recuperar esa lista en tiempo de ejecución. No sé si pasa lo mismo con Android 2.x.

3

packageManager.getInstallerPackageName (contexto) .equals ("com.google.android.feedback")

http://developer.android.com/reference/android/content/pm/PackageManager.html#getInstallerPackageName(java.lang.String)

+2

Esta podría no ser una solución viable, ya que [algunos desarrolladores están informando] (http://groups.google.com/group/android-developers/browse_thread/thread/d3c0ac0748e38132) que 'getInstallerPackageName()' no siempre devuelve el mismo valor (o cualquier valor) cuando la aplicación se instala a través del Mercado. –

Cuestiones relacionadas