2011-01-25 19 views
3

アプリケーションから外部アプリケーションを呼び出すにはどうすればよいですか?外部アプリケーションの呼び出し

例:私のアプリからShazam(アプリケーション)に電話する必要があります。 logcatには、アプリケーションのパッケージ名が表示されています。

これはどんな目的にも役立ちますか?

答えて

1

サードパーティアプリケーションのアクティビティは、次の方法で呼び出すことができます。

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

しかし、これはそれについての素晴らしい方法ではありません。パッケージ名が変更された場合(非常に遠隔の可能性がある)、またはアクティビティ名が変更された場合(Splashが変更される可能性があります)、アプリケーションは中断します。 Shazamがインソンテーションを持っていて、ソングを聴き始めるために呼び出すことができるインテントを持っているなら、それを使ってください。

また、電話がクラッシュしないようにShazamがインストールされていない場合は、必要なチェックを行ってください。

1

アプリケーションのランチャーの目的オブジェクトを作成し、startActivityを呼び出します。

+0

マニフェストに外部クラスを追加することはできません。 – Eby

+0

マニフェストファイルに外部クラスを追加する必要はありません。アプリケーションが利用可能でインストールされていることが確かな場合は、既知のクラス名でインテントを作成し、そのインテントと共にstartActivityを起動してください。これは、Androidのホームアプリケーションがインストールされているすべてのアプリケーションを一覧表示して、Appショートカットをタップすると起動させる方法です。 – Gopinath

+0

クラスshazam = Class.forName( "com.shazam.android"); \t \t意図インテント=新しいインテント(shaz.this、shazam.getClass()); \t \t startActivity(インテント); このような感じですか? – Eby

1

は、具体的にジャーンために、次のコードは動作します:

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あなたはジャーンウィジェットをタップしたときに発行される意図です。

関連する問題