2010-12-01 4 views
0

Y at-il un moyen (intention) de savoir si mon application est installée? J'ai suivi le lien ci-dessous, mais ma demande ne reçoivent pas l'intention quand mon application est installéeFaçon de savoir si mon application est installée

Android - How to intercept the 'Install application' intent

+3

donc vous avez l'application A, et que vous souhaitez savoir quand l'application B est installée; ou vous avez une application A; et souhaitez savoir quand la mise à niveau ou la réinstallation est sur le point de se produire? – bbaja42

+0

Je veux savoir dans l'application A, si l'application A est installée. – Shri

+1

Alors l'application A est en cours d'exécution, et pendant l'exécution, vous voulez vérifier que l'application en cours d'exécution est bien installée? –

Répondre

4

Si vous voulez exécuter un code depuis l'application A, il doit être déjà installé (c'est évident, n'est-ce pas?), Donc vous ne pouvez pas vérifier depuis votre application A si votre application APP est installée ou non . C'est comme si vous vouliez savoir quand vous êtes mort: après votre mort, il sera impossible de le savoir. D'autre part, quelqu'un d'autre peut savoir quand vous mourrez ... même pour le scénario Android: une application B peut savoir si l'application A est installée ou non (en utilisant getInstalledPackages ou intentions ou peu importe).

+0

En fait, le cas d'utilisation est. Mon application n'a pas d'icône dans le lanceur d'applications. Fondamentalement, je veux démarrer le service immédiatement après l'installation de l'application (l'utilisateur ne démarre pas mon application) – Shri

+0

Ensuite, vous pouvez essayer d'intercepter une intention externe avec un 'BroadcastReceiver'. Je ne sais pas si vous pouvez intercepter 'android.intent.action.PACKAGE_ADDED' ... mais je sais que vous pouvez intercepter quelque chose comme l'intention de démarrage (dans ce cas, vous devrez attendre que l'utilisateur redémarre le téléphone, cependant). Vous pouvez rechercher toute autre intention que vous pouvez utiliser une seule fois, juste pour démarrer le service. – Cristian

+0

android.intent.action.PACKAGE_ADDED ne peut pas être reçu soi-même, il notifiera seulement dans le cas où une autre application installe l'application – Shri

0

Vous pouvez utiliser http://developer.android.com/reference/android/content/pm/PackageManager.html#getInstalledPackages(int)

Souvenez-vous de définir l'autorisation appropriée dans votre AndroidManifest.

Vous avez cité le lien vers Android - How to intercept the 'Install application' intent - ce qui signifie que vous aimeriez savoir quand votre application a été installée du tout? Essayez-vous de vérifier si les utilisateurs téléchargent réellement votre application? Fondamentalement, je pense que ce n'est pas possible de le faire.

Mais si vous aimez voir si votre application a été installée, il suffit de vérifier une SharedPreference et si ce n'est pas possible, c'est une nouvelle installation.

+0

Je veux juste savoir si mon application est installée, je veux dire un nouveau cas d'installation est quand mon application est installée Je veux m'inscrire à l'observateur de contenu donc je veux savoir comment cela peut être fait – Shri

+0

Le test d'installation frais dans cette réponse semble raisonnable . Vous pouvez également faire quelque chose lors de la première installation, puis définir un drapeau quelque part, et ne pas le faire à nouveau si vous voyez ce drapeau déjà défini. –

+0

Y a-t-il un moyen de vérifier la nouvelle installation? – Shri

Questions connexes