アプリケーションから外部アプリケーションを呼び出すにはどうすればよいですか?外部アプリケーションの呼び出し
例:私のアプリからShazam
(アプリケーション)に電話する必要があります。 logcat
には、アプリケーションのパッケージ名が表示されています。
これはどんな目的にも役立ちますか?
アプリケーションから外部アプリケーションを呼び出すにはどうすればよいですか?外部アプリケーションの呼び出し
例:私のアプリからShazam
(アプリケーション)に電話する必要があります。 logcat
には、アプリケーションのパッケージ名が表示されています。
これはどんな目的にも役立ちますか?
サードパーティアプリケーションのアクティビティは、次の方法で呼び出すことができます。
final Intent shazamIntent = new Intent("com.shazam.android");
shazamIntent .setComponent(new ComponentName("com.shazam.android","com.shazam.android.Splash"));
startActivity(shazamIntent);
しかし、これはそれについての素晴らしい方法ではありません。パッケージ名が変更された場合(非常に遠隔の可能性がある)、またはアクティビティ名が変更された場合(Splash
が変更される可能性があります)、アプリケーションは中断します。 Shazamがインソンテーションを持っていて、ソングを聴き始めるために呼び出すことができるインテントを持っているなら、それを使ってください。
また、電話がクラッシュしないようにShazamがインストールされていない場合は、必要なチェックを行ってください。
アプリケーションのランチャーの目的オブジェクトを作成し、startActivityを呼び出します。
は、具体的にジャーンために、次のコードは動作します:
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
あなたはジャーンウィジェットをタップしたときに発行される意図です。
マニフェストに外部クラスを追加することはできません。 – Eby
マニフェストファイルに外部クラスを追加する必要はありません。アプリケーションが利用可能でインストールされていることが確かな場合は、既知のクラス名でインテントを作成し、そのインテントと共にstartActivityを起動してください。これは、Androidのホームアプリケーションがインストールされているすべてのアプリケーションを一覧表示して、Appショートカットをタップすると起動させる方法です。 – Gopinath
クラスshazam = Class.forName( "com.shazam.android"); \t \t意図インテント=新しいインテント(shaz.this、shazam.getClass()); \t \t startActivity(インテント); このような感じですか? – Eby