[Android]暗黙的インテントで他アプリを起動する | 妄想プログラマのらくがき帳

2013年2月18日月曜日

[Android]暗黙的インテントで他アプリを起動する

他アプリを起動する方法として明示的インテントと暗黙的インテントがあります。

明示的インテントは、起動するアクティビティを明示的に指定する方法です。
この方法で他アプリを起動するには、起動するアプリのパッケージ名を直接指定する必要があります。

暗黙的インテントは、起動するアクティビティを指定するのではなく、
アクティビティに実行して欲しいアクションを指定する方法です。
この方法では指定したアクションを実行できるアプリがシステムによって選択されます
(該当するアプリが複数ある場合、アプリ選択画面が表示されます)。

指定するアクションには以下のようなものがあります。

ACTION_SENDTOメッセージ送信する。
ACTION_SEND_MULTIPLE複数のデータを送信する。
ACTION_DIAL電話をかける。
ACTION_VIEWデータをユーザに表示する。
ACTION_EDITデータを編集する。

この他にも数多くのアクションが定義されています。
(http://developer.android.com/reference/android/content/Intent.htmlを参照)

また、インテントにはアクションに加えてカテゴリやデータの種類を指定できます。
カテゴリやデータを指定することで、より最適なアプリが起動されるようになります。

暗黙インテントによる他アプリ起動のサンプル

暗黙的インテントのサンプルをいくつか挙げてみます。
Uri number = Uri.parse("tel:0123456789");
Intent callIntent = new Intent(Intent.ACTION_DIAL, number);

startActivity(callIntent);
Intent emailIntent = new Intent(Intent.ACTION_SENDTO);
emailIntent.setData(Uri.parse("mailto:abc@example.com"));
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "タイトル");
emailIntent.putExtra(Intent.EXTRA_TEXT, "本文");

startActivity(emailIntent);
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

startActivity(cameraIntent);
Uri location = Uri.parse("geo:0,0?q=1600+Amphitheatre+Parkway,+Mountain+View,+California");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, location);

startActivity(mapIntent);
Intent browserIntent = new Intent(Intent.ACTION_VIEW);
browserIntent.setData(Uri.parse("http://www.example.com"));

startActivity(browserIntent);

0 件のコメント:

コメントを投稿