自分のアプリ内で別のアクティビティを開くときにインテントとstartActivity()を使用する方法を理解していますが、別のアプリを開始するにはどうすればよいですか?具体的には:
インテントが利用可能かどうかを確認する方法:
Intentを呼び出して、利用できない場合はActivityNotFoundException
に対処してみてください
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(path, "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
try {
startActivity(intent);
}
catch (ActivityNotFoundException e) {
Toast.makeText(OpenPdf.this,
"No Application Available to View PDF",
Toast.LENGTH_SHORT).show();
}
または
パッケージマネージャーに問い合わせる 事前に確認する:
PackageManager packageManager = getPackageManager();
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setType("application/pdf");
List list = packageManager.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
if (list.size() > 0) {
intent.setDataAndType(path, "application/pdf");
startActivity(intent);
}
パラメータをアプリケーションに渡す方法、またはその機能を知る方法:
あなたが探しているのはインテントとインテントフィルターです。
知りたいことはすべてAndroid開発者ガイド)に詳しく説明されています。
http://developer.Android.com/guide/topics/intents/intents-filters.html