2010-04-28 6 views
7

Je veux appeler une application android d'une autre applicationComment appeler une application android d'une autre application Android

J'ai essayé une examples, mais ils ne travaillent pas pour moi, je reçois une erreur d'analyse du paquet.

Tenir compte il y a deux applications: Application1 et Application2

Je veux appeler Application2 de Application1

Voici le code un peu d'échantillon à faire:

Intent i = new Intent(); 
i.setAction(android.content.Intent.ACTION_VIEW); 
i.setDataAndType(Uri.fromFile(fileName),"application/vnd.android.package-archive"); 
startActivity(i); 

Ici fileName = "file://data/data/package_name/files/Application1.apk";

+2

Il y a beaucoup de concepts dans Android qui ressemblent à "appeler une application android d'un autre". Pensez à ajouter une centaine de mots supplémentaires à votre question, en expliquant ce que vous essayez d'accomplir, afin que nous puissions mieux vous aider. – CommonsWare

+0

Copie possible de [Lancer une application à partir d'une autre application sur Android] (http://stackoverflow.com/questions/3872063/launch-an-application-from-another-application-on-android) – galacticninja

Répondre

1

Essayez-vous de lancer une application qui n'est pas installée? Il semble que vous essayez d'exécuter une application en transmettant à app1 l'emplacement du fichier .apk pour app2 sur la carte SD - cela ne fonctionnera pas. Le système d'exploitation Android saura comment appeler App2 via Intent uniquement après que l'utilisateur l'a installé (prenez en compte les risques de sécurité si vous pouviez invoquer du code arbitraire sur la carte SD).

En supposant que les applications app1 et app2 sont installées, consultez le fichier AndroidManifest.xml pour app2. Ce fichier indiquera à quel type de Intent il répondra.

voir http://developer.android.com/guide/topics/intents/intents-filters.html#npex pour un bon exemple. Veuillez nous montrer le fichier AndroidManifest.xml pour app2 si vous avez besoin d'aide supplémentaire.

5

Je pense que ce code vous aidera:

Intent intent = new Intent(Intent.ACTION_RUN); 
intent.setComponent(new ComponentName("<packet name>", "<class name>")); 
List list = packageManager.queryIntentActivities(intent, packageManager.COMPONENT_ENABLED_STATE_DEFAULT); 

if(list.size() > 0) 
{ 
Log.i("Log", "Have application" + list.size()); 
startActivity(intent); 
} 
else 
{ 
    Log.i("Log", "None application"); 
} 
0
Intent i4=new Intent(Intent.ACTION_MAIN); 

PackageManager manager = getPackageManager(); 

i4 = manager.getLaunchIntentForPackage("com.apk");//apk name 

i4.addCategory(Intent.CATEGORY_LAUNCHER); 

startActivity(i4); 
Questions connexes