PR

Androidの重要な機能、インテント

インテントとは

前回から、Androidにおける、より実践的なアプリケーション開発について説明してきました。今回は、Androidの最も重要な機能の1つであるインテント(Intent)について解説します。インテントには「意図」「目的」という意味があります。主にアクティビティを起動する際のパラメータに使われます。

インテントには大別すると明示的インテントと暗黙的インテントの2種類があります。

明示的インテントがアクティビティを直接指定して起動させるのに対し、暗黙的インテントでは、明示的に起動させるアクティビティを指定せずにインテントのパラメータに起動するアクティビティをある程度推測できるだけの情報(インテントフィルター)を入れておくと、該当するアクティビティが起動するようになっています。

(該当するアクティビティが複数ある場合はユーザーが起動するアクティビティを選択するダイアログが表示されます。該当するアクティビティがない場合は起動に失敗します。)

特徴的なのは、起動元からは実際に起動するアクティビティが何なのかわからないというところです。この疎結合な仕組みがAndroidのおもしろいところです。

明示的インテント・暗黙的インテントの使用例

 例)明示的インテント(自分のアプリ内のアクティビティを起動)
 Intent intent = new Intent(this, xxx.xxx.xxx.class); //xxxにはパッケージのパスが入る
 startActivity(intent);

 例)暗黙的インテント(jpegを送信するアクティビティを起動)
 Intent intent = new Intent();
 intent.setAction(Intent.ACTION_SEND);
 intent.setType("image/jpeg");
 intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("jpegファイルの場所"));
 startActivity(intent);

より詳しい内容は公式サイトのインテントの解説(http://developer.android.com/reference/android/content/Intent.html)とインテントフィルターの解説(http://developer.android.com/guide/topics/intents/intents-filters.html)を参照してください。

上のスクリーンショットはG1に標準で入っているPicturesアプリから写真を1つ選んで(図1-1)、暗黙的インテントで起動するアプリを選択している様子(図1-2)です。

上記の場合の暗黙的インテントで起動されるアプリにはAndroidManifest.xmlに以下のような記述が必要です。

<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/jpeg" />
</intent-filter>

次に、Androidの最新情報や、Google I/Oについてお話しします。

この記事の著者

杉本 礼彦

日本Androidの会
株式会社ブリリアントサービス代表取締役。海外、日本国内の企業と共に携帯電話の黎明期から携帯電話の開発に携わっている。技術者である父親の影響もあり技術者に対し一方的に搾取しない会社を目指してブリリアントサービスを設立。「AndroidにおけるMade In Japan」を考えている。
日本Androidの会→http://android-group.jp

連載「組み込み開発のススメ」の記事一覧