2010-04-28 23 views
7

Quiero llamar a una aplicación Android desde otra aplicaciónCómo llamar a una aplicación Android desde otra aplicación Android

He probado algunos examples, pero no están funcionando para mí, estoy recibiendo un error de análisis paquete.

Considérese que hay dos aplicaciones: Application1 y Application2

Quiero llamar Application2 de Application1

Aquí está el código de alguna muestra de ello:

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

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

+2

Hay muchos conceptos en Android que se asemejan a "llamar a una aplicación Android de otro". Considere agregar otro centenar de palabras más o menos a su pregunta, explicando qué es lo que está tratando de lograr, para que podamos ayudarlo mejor. – CommonsWare

+0

Posible duplicado de [Iniciar una aplicación desde otra aplicación en Android] (http://stackoverflow.com/questions/3872063/launch-an-application-from-another-application-on-android) – galacticninja

Respuesta

1

¿Está intentando iniciar una aplicación que no está instalada? Parece que estás intentando ejecutar una aplicación pasando a app1 la ubicación del archivo .apk para app2 en la tarjeta sd; esto no funcionará. El sistema operativo Android sabrá cómo invocar la aplicación2 a través de Intent s solo después de que el usuario la haya instalado (considere los riesgos de seguridad si pudiera invocar cualquier código arbitrario que se encuentre en la tarjeta sd).

Suponiendo que se instalan app1 y app2, mire el archivo AndroidManifest.xml para app2. Este archivo indicará a qué tipo de Intent s responderá.

ver http://developer.android.com/guide/topics/intents/intents-filters.html#npex para un buen ejemplo.

Por favor, muéstrenos el archivo AndroidManifest.xml para la aplicación2 si necesita más ayuda.

5

creo que este código le ayudará:

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); 
Cuestiones relacionadas