调用外部应用程序

时间:2011-01-25 09:36:27

标签: android android-intent shazam

如何从我的应用程序中调用外部应用程序?

例如:我需要从我的应用程序中调用Shazam(应用程序)。 我可以在logcat

中看到该应用程序的包名称

这对任何目的都有用吗?

3 个答案:

答案 0 :(得分:1)

创建应用程序的启动器意图对象并说出startActivity。

答案 1 :(得分:1)

您可以通过以下方式调用第三方应用程序的活动。

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

但是,这不是一个好方法。如果包名称更改(这是一种非常遥远的可能性)或活动名称更改(Splash可能更改为其他内容),您的应用程序将会中断。 如果Shazam有一个Intent,可以调用它来开始听一首歌的使用(不确定他们是否有)。

此外,如果没有安装Shazam,请进行必要的检查,以免您的通话崩溃。

答案 2 :(得分:1)

特别是对于Shazam,以下代码有效:

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是点击Shazam小部件时发出的意图。