2010-08-06 16 views

Respuesta

79

Intente utilizar PackageManager y getLaunchIntentForPackage()

+1

Gracias, echaba de menos esta función mientras se mira en PackageManager ... – bart

+0

Sir ¿Por qué no puede inicio el lanzador por conseguir su paquete de nombrar su dando Excepción java.lang.NullPointer ? –

+0

¿Lanza una nueva instancia completa? Quiero lanzar el existente. ¿Cómo puedo hacer eso? – JohnyTex

116

Sólo tiene que utilizar estas dos líneas siguientes, por lo que puede lanzar cualquier aplicación instalada cuya package name se sabe:

Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.example.abc"); 
startActivity(LaunchIntent); 

Si usted no sabe el nombre del paquete de aplicaciones que quería lanzar, intente su mano en

PackageManager pm; 
pm = getPackageManager(); 
// get a list of installed apps. 
packages = pm.getInstalledApplications(0); 

Para obtener más información consulte este enlace Using Package Manager

+2

+1 es un buen código –

+1

¿Esto lanza una Instancia completamente nueva? Quiero lanzar el existente. ¿Cómo puedo hacer eso? – JohnyTex

+0

@hohny tex ¿encuentra una solución para su problema –

12

Usted puede obtener el intento de lanzamiento a través de la clase PackageManager:

PackageManager pm = context.getPackageManager(); 
Intent launchIntent = pm.getLaunchIntentForPackage("com.example.package"); 
context.startActivity(launchIntent); 

en cuenta que getLaunchIntentForPackage devuelve NULL si no se encuentra el paquete. Así que es posible que desee agregar un cheque nulo:

if (launchIntent != null) { 
    context.startActivity(launchIntent); 
} else { 
    Toast.makeText(context, "Package not found", Toast.LENGTH_SHORT).show(); 
} 
+0

Esta respuesta es solo ligeramente diferente de las respuestas anteriores, excepto que es 3 años más reciente. No veo cómo se justifican las votaciones ascendentes. – hBrent

Cuestiones relacionadas