2010-10-08 12 views
5

J'ai une application que je voudrais distribuer à travers la place du marché et aussi de mon propre site. Comment puis-je, en utilisant une seule version et une seule clé, vérifier si l'application a été téléchargée sur le marché ou non?android: Détecter si l'application a été téléchargée du marché

This question est répondu en faisant signer le code avec différentes clés, mais nous voulons idéalement une seule construction.

+0

En ce qui concerne comme je sais que cela ne pouvait pas être fait en une seule fois. –

+0

Sergey - Collez cela comme une réponse et je vais le marquer comme correct. D'après ce que je peux dire, vous avez raison de dire que ce n'est pas possible. – Martyn

Répondre

1

Il semble que cela ne puisse pas être fait.

+1

Notez que cela ne peut pas être fait étant donné les contraintes du PO. Cela pourrait être fait en signant la construction du marché avec une clé unique, et en comparant une somme de contrôle de la clé avec une valeur stockée dans l'application. Personnellement, je préfère personnaliser par script de construction pour la version par rapport aux versions de débogage. –

0

Je ne sais pas si cela est vraiment corrélé ou non, mais si vous pouvez lire /data/system/packages.xml applications du marché semblent avoir installer = "com.google.android.feedback" alors que ceux fournis avec le la construction du système et ceux compilés localement ne le font pas.

+1

Récemment Android Market a le package "com.android.vending". –

1

Sur mon Android 1.5 les applications de téléphone uniquement installées via Market sont listées dans "Mes téléchargements" dans Market App, donc la question est de savoir si vous pouvez récupérer cette liste en cours de fonctionnement. Je ne sais pas si c'est la même chose avec Android 2.x.

3

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

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

+2

Cela peut ne pas être une solution viable, car [certains développeurs rapportent] (http://groups.google.com/group/android-developers/browse_thread/thread/d3c0ac0748e38132) que 'getInstallerPackageName()' ne renvoie pas toujours le même valeur (ou toute valeur) lorsque l'application est installée via le marché. –