データのシェア - 単純なテキストを他のアプリに送る
スマートフォンではデータを複数のアプリケーションで簡単に共有 (シェア) できることも大きな魅力です。
データのシェアというのは、例えば次のようなことです。
*カメラで撮った写真を、画像編集アプリに送る
*画像編集アプリで編集した画像をツイッターに送る、フェイスブックで共有する
デスクトップ OS などでは、ファイルとして明確に保存して、他のソフトからそれを「開く」という操作をするので問題ありません。
しかし、スマートフォンでは基本的に片手で、ボタンを数回押すだけで操作が完了するということが求められますから、ファイルとして保存・・・ そして、それをシステムのファイルシステムから探して開く、という操作はあまり望ましいものではありません。
そこで、データのシェアということが重要になります。
ここではまずデータのシェアとして、単純な文字データ、テキストのシェアの方法を見ていきましょう。
単純なテキストを他のアプリに送る方法
ここで作るプログラムを実行すると次のことができます。
ボタンがひとつ配置されています。
このボタンを押すと、データをシェアするアプリケーションのリストが表示されます。
ここで、例えば Twitter を選択すると・・・
私の Twitter アプリに、ここで作るプログラムから送った文字 "TEXT!" という文字が取り込まれていることがわかります。
あるいは上のリストから Gmail を選択すると、Gmail アプリにて、ここで作るプログラムから送った文字 "TEXT!" と "SUBJECT!" がそれぞれ本文と件名に取り込まれていることがわかります。
実装方法は次の通りです。
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT, "TEXT!");
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "SUBJECT!");
startActivity(shareIntent);
Action を Intent.ACTION_SEND としたインテントを作成します。そしてこれに対して、setType メソッドでデータのタイプを、putExtra で文字データをセットします。
これだけで OK です。
アプリケーションリストのタイトルも変更可能です。
"Complete action using" という文字が "TITLE!" に変わっています。この場合は次のようにします。
startActivity(Intent.createChooser(shareIntent, "TITLE!"));
startActivity にて createChooser を利用します。