Pregunta

¿Cómo puedo llamar a una aplicación externa desde mi aplicación?

Por ejemplo: necesito llamar Shazam (aplicación) de mi aplicación. Puedo ver el nombre del paquete de la aplicación en el logcat.

¿Será útil para algún propósito?

¿Fue útil?

Solución

Puede llamar a la actividad de una aplicación de terceros de la siguiente manera.

final Intent shazamIntent = new Intent("com.shazam.android");                
shazamIntent .setComponent(new  ComponentName("com.shazam.android","com.shazam.android.Splash"));
startActivity(shazamIntent );

Pero, esta no es una excelente manera de hacerlo. En caso de que el nombre del paquete cambie (que es una posibilidad muy remota) o el nombre de la actividad cambia (Splash podría cambiar a otra cosa) su aplicación se rompería. Si Shazam tiene una intención que se puede invocar para comenzar a escuchar una canción usarla (no estoy seguro de si tienen una).

Además, realice la verificación necesaria en caso de que Shazam no esté instalado para que su llamada no se bloquee.

Otros consejos

Cree el objeto de intención del lanzador de la aplicación y diga StartActivity.

Específicamente para Shazam, el siguiente código funciona:

Intent intent = new Intent("com.shazam.android.intent.actions.START_TAGGING");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

if(!context.getPackageManager().queryIntentActivities(intent, 0).isEmpty()) {
    context.startActivity(intent);
} else {
    // Shazam is not installed
}

START_TAGGING es la intención que se emite cuando toca el widget shazam.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top