2010-03-25 6 views
6

Je souhaite publier mon application (ABC). C'est un fichier audio (juste par exemple.) Enveloppé comme apk. Lorsque l'utilisateur installe cette application, il doit vérifier si une autre application (XYZ) est déjà installée ou non. Si ce n'est pas le cas, faites savoir à l'utilisateur qu'il doit d'abord installer l'application XYZ avant d'installer ABC.Vérification Android pour une application dépendante lors de l'installation?

Merci à l'avance

Rajesh

Répondre

18

Si vous connaissez le nom du package de l'application que vous recherchez, vous pouvez utiliser le PackageManager pour tester l'existence d'une application.

try{ 
    ApplicationInfo info = getPackageManager() 
          .getApplicationInfo("com.myproject", 0); 
    //-- application exists 
    } catch(PackageManager.NameNotFoundException e){ 
    //-- application doesn't exist 
} 
+1

Je ne pense pas que vous pouvez faire cela "sur l'installation" cependant. Vous devrez le faire la première fois que vous exécuterez l'application la plus probable. –

+0

right ... Je ne pense pas qu'il soit possible d'exécuter ce code lors de l'installation. Cela dit, quelle action pouvez-vous entreprendre pendant le processus d'installation? Serait-il préférable de vérifier l'existence d'une autre application la première fois que quelqu'un a lancé votre application? – JeremyFromEarth

+6

"Cela dit, quelle action pouvez-vous entreprendre pendant le processus d'installation?" Rien - vous n'avez pas de contrôle sous l'utilisateur lance d'abord votre application. "Serait-il préférable de vérifier l'existence d'une autre application la première fois que quelqu'un a lancé votre application?" Pas de choix - c'est la seule vraie option. J'ai plaidé pour un système de dépendance pour les APK pour faire face à cette situation, et la réponse a été ... décevante. – CommonsWare

2

Dans le cas où XYZ est une bibliothèque partagée , vous pouvez configurer le manifeste Android de votre application pour empêcher les utilisateurs d'installer ABC sans XYZ. S'il vous plaît utiliser l'élément à l'intérieur du AndroidManifest.xml de ABC, en déclarant:

<uses-library android:name="package name of XYZ" android:required="true" /> 

Hope this aider votre problème.

+1

Cette approche informe-t-elle l'utilisateur que l'application ne peut pas être installée car elle nécessite une application dépendante? Si oui, est-ce que cela les amène au marché? – Bear

+2

L'effet du paramètre * uses-library * est que l'application sera filtrée par le Market, de sorte que l'utilisateur ne pourra pas voir l'application * ABC * si * XYZ * n'est pas déjà installé dans l'appareil: [ Filtres de marché] (http://developer.android.com/guide/appendix/market-filters.html) – Livio

Questions connexes