2011-01-12 29 views
19

En esta aplicación que estoy desarrollando necesito cargar/llamar a otra aplicación que ya está instalada en el teléfono. Es una aplicación para uso personal solamente, por lo que no es necesario verificar si la otra aplicación está instalada, lo sé.Llamar a una aplicación desde otra aplicación

He buscado este problema en Google durante horas, pero no encuentro nada que funcione. Principalmente porque las pautas para encontrar el nombre del paquete y el nombre de clase son realmente malas.

A través de cmd y adb Pude encontrar que la información sobre la aplicación a la que me gustaría llamar es: paquete: /data/app/com.soundcloud.android-1.apk=com.soundcloud.android (eso es exactamente lo que se dijo en la ventana de cmd.)

probé algo como esto:

Intent i = new Intent(); 
i.setClassName("/data/app/com.soundcloud.android-1.apk", "com.soundcloud.android"); 
startActivity(i); 

Pero mi aplicación sólo se bloquea en su lugar. He utilizado el código anterior porque alguien dice que esto podría llamar a una aplicación:

Intent i = new Intent(); 
i.setClassName("<package_name>","<Class Name(with package name)>"); 
startActivity(i); 

¿Alguien sabe qué escribir realmente?

P.S .: mi propia aplicación no necesita ninguna información sobre lo que está sucediendo en la aplicación llamada.

+0

es lo que no entiende acerca de? i.setClassName ("", ""); ? – Falmarri

+0

No sé qué poner en cada uno de esos parámetros. O si funcionará de esta manera. – eightx2

Respuesta

36

Usar la PackageManager para tener una intención para el paquete:

PackageManager pm = getPackageManager(); 
Intent intent = pm.getLaunchIntentForPackage("com.example.package"); 
startActivity(intent); 
+1

Muchas gracias, utilicé la opción PackageManager, ¡funciona como un encanto! – eightx2

+0

El gestor de paquetes está funcionando, pero el intento no funciona – DAS

+0

PackageManager funciona bien gracias mucho ..... – naresh

1

La documentación es here.

Creo que en su ejemplo, com.soundcloud.android es, de hecho, el nombre del paquete, por lo que debería ser el primer argumento. Para el segundo, aún necesita averiguar la clase que va a usar.

Si no tiene el código, puede verificar cómo encontrar la clase desde el apk con this.

Cuestiones relacionadas