第4回 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

この記事を評価する

4
平均: 4 (投票数: 4)
あなたの評価: なし

IT Leaders 毎月無料でお届けいたします

本誌は、読者登録いただくことにより、毎月無料でみなさまのお手元まで直接お届けいたします(書店などでは販売していません)。

企業の情報システムを担当する方々や事業部門のIT担当の方々、およびIT関連プロフェッショナルの方々を対象に、実践的に役立つ情報を掲載、幅広く業務にご活用いただけます。

IT Leaders新規購読お申し込みはこちらから