2011年9月14日水曜日

Intent で他のアプリと連携するアプリの作り方

自分のアプリから Intent を発信して他のアプリを呼び出す方法を解説します。標準ブラウザの「ページを共有」機能と同じ感覚で自作のアプリから他のアプリを呼び出すことが可能です。
基本的には ACTION_SEND を指定した Intent を投げるだけです。そうすると AndroidManifest.xml で Intent.ACTION_SEND を受け取るように指定されているアプリの一覧が表示され、そのアプリにテキストなどのデーターを渡すことができます。以下にサンプルコードを挙げます。
Intent send = new Intent(Intent.ACTION_SEND);
send.setType("text/plain");
send.putExtra(Intent.EXTRA_TEXT, "共有したい文字列");
try {
startActivity(Intent.createChooser(send, "Select an action for URL"));
}catch(android.content.ActivityNotFoundException e){
//該当するActivityがないときの処理
}
Intent.ACTION_SEND を生成し、そこに putExtra() メソッドで他のアプリに渡したい情報を付加します。Intent.createChooser() の第二引数はアプリ選択ダイアログの上部タイトルになる文字列です。実行すると以下の画像のような感じになります。

この画像は開発用のエミュレーターのスクリーンショットなので、候補となるアプリの数が少ないですが、市販されている実際の端末ではメール、SMS、Twitter クライアント、Facebook、Friend Stream、Evernoteなどがずらりと表示されるかと思います。

0 件のコメント:

コメントを投稿