''[[MobileApp>Mobile Application 入門]]'' > ''[[Android>Android]]'' > ''Intent''
~
~
RIGHT:[[English>http://ee72078.moo.jp/chinsan/e/MobileApp/index.php?Android%20Intent]]
*インテント [#pb9e194a]
**基本カテゴリの説明 [#nb8251c2]
インテントで投げる情報には、4つの基本カテゴリがあり~
#style(class=table_left){{
|||c
|Ⅰ| ''ACTION'' | 実行する動作を記述する |
|Ⅱ| ''CATEGORY'' | カテゴリによる絞込みを実施 |
|Ⅲ| ''DATA'' | URI情報を付加 |
|Ⅳ| ''TYPE'' | MimeType情報を付加 |
~
~
***Ⅰ.アクション [#sfbce967]
実行する動作を記述する
~
#style(class=table_left){{
|~コンスタント|~アクション|
|ACTION_CALL| 通話を開始する。|
|ACTION_EDIT| ユーザ編集のデータを表示する。|
|ACTION_MAIN| データ入力なしかつ出力の返却なしで、タスクの初期アクティビティとして開始する。|
|ACTION_SYNC| モバイルデバイス上のデータを使ってサーバのデータを同期化する。|
|ACTION_PICK|データを取得する|
|ACTION_CHOOSER|ユーザーに Activity を選択させるための画面を表示する。|
|ACTION_GET_CONTENT|データ内から一つ選択てし、その選択情報を示して返す。|
|ACTION_DIAL|電話をかける画面を表示する。|
|ACTION_CALL|電話をかける|
|ACTION_SEND|いわゆる”共有”の動作|
|ACTION_SENDTO|メール送信連携。TO、Subject、Text指定可|
|ACTION_ANSWER|電話を受信する|
|ACTION_INSERT|アイテム追加|
|ACTION_DELETE|データを削除|
|ACTION_RUN|データの実行|
|ACTION_SYNC|データの同期|
|ACTION_PICK_ACTIVITY|Intentから一つActivityを選択して、そのクラスを返す。|
|ACTION_SEARCH| ローカル内を検索|
|ACTION_WEB_SEARCH|Web検索|
|ACTION_FACTORY_TEST|工場出荷テストを実行|
~
~
***Ⅱ.カテゴリ [#u804aa7e]
カテゴリによる絞込みを実施する
#style(class=table_left){{
|~カテゴリ|~意味|
|CATEGORY_BROWSABLE| リンクで参照されているデータを呼び出すことができるアクティビティ。&br;例えば、ブラウザで特定のURLをクリックしたら別アプリが起動することが可能|
|CATEGORY_GADGET|ガジェットのホストになっている別のアクティビティを内部に組込み可能なアクティビティ。|
|CATEGORY_HOME| ホームスクリーンを表示するアクティビティで、最初の画面が見えるのはデバイスがオンになったとき、&br;またはHOME キーが押されたとき。|
|CATEGORY_LAUNCHER|アプリケーションランチャーにリストされるアクティビティ。(タスクの初期アクティビティになれる)|
|CATEGORY_PREFERENCE|プリファレンスパネルがターゲットのアクティビティ。|
~
参考: [[Think IT - 第4回:Androidの重要な機能、インテント>http://thinkit.jp/article/921/1/]]~
Sampleソース付き~
参考: [[日本Androidの会 - インテントを発行してみよう>http://www.android-group.jp/index.php?plugin=attach&pcmd=open&file=5.00%A5%A4%A5%F3%A5%C6%A5%F3%A5%C8%A4%F2%C8%AF%B9%D4%A4%B7%A4%C6%A4%DF%A4%E8%A4%A6.pdf&refer=%CA%D9%B6%AF%B2%F1%2F%A5%A4%A5%F3%A5%C6%A5%F3%A5%C8%A4%F2%C8%AF%B9%D4%A4%B7%A4%C6%A4%DF%A4%E8%A4%A6]]
~
***Ⅲ.データ [#h7f8afd5]
~
***Ⅳ.タイプ [#vef49531]
~
**Intentで値を引き渡す方法 (拡張インテント)[#x946e7f9]
-IntentクラスのputExtra()を使用し、様々な引き渡したい情報を付加させる~
-putExtra()には2つの引数を渡す。一つはキー。一つは渡したい内容。~
-真偽値、数値、文字列、配列。様々な内容を添付可能~
~
|String型|getStringExtra()|
|boolean型|getBooleanExtra()|
|int型|getIntExtra()|
~
参考: [[mucchinのAndroid戦記>http://android.roof-balcony.com/category/intent/]]
**呼び元でIntentの戻り値を受ける方法 [#u4a48877]
呼び出し時にstartActivityではなく、~
呼び出し時にstartActivityForResultを用いる~
結果は、onActivityResult()を用意して、取得する
** 様々なIntent連携[#vae2bcf2]
参考 : [[「コードを貼り付けながら。」さんのページ - Intent(インテント)連携をまとめてみる>http://d.hatena.ne.jp/unagi_brandnew/20100309/1268115942]]~
参考 : [[んぱかさんのページ>http://www.saturn.dti.ne.jp/~npaka/android/ActivityEx/index.html]]
~
~
*明示的なインテントと暗黙的なインテント [#g08a580a]
-明示的インテント : アクティビティを直接指定起動
-暗黙的インテント : インテントのパラメータ起動。ゆるい連携。
**明示的インテント [#p2447a97]
コンストラクタIntentやsetComponentなどによって明示的に指定。相手先が明確。~
~
Intent intent = new Intent(this, xxx.xxx.xxx.class); //xxxにはパッケージのパスが入る~
startActivity(intent);~
**暗黙的インテント [#b1951ecc]
jpegを送信するアクティビティを起動~
Intent intent = new Intent();~
intent.setAction(Intent.ACTION_SEND);~
intent.setType("image/jpeg");~
intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("jpegファイルの場所"));~
startActivity(intent);~
~
~
*ブロードキャストレシーバ [#sc917cf5]
ブロードキャストの連絡を受信してそれに対処するだけのコンポーネント~
http://www.taosoftware.co.jp/blog/2009/03/alarmmanager_5.html
ブロードキャストの多くが元々はシステム コード。以下のようなモノを検知する。~
・時刻が変更された~
・端末が起動された~
・アプリのインストール~
・バッテリー残量低下~
・ユーザーが言語設定を変更~
・写真が撮影された~
・タイム ゾーンが変更された~
|ACTION_BATTERY_LOW| バッテリー残量が少ないときの警告。|
|ACTION_HEADSET_PLUG| ヘッドセットがデバイスに取り付けられた、またはそこから取り外された。|
|ACTION_SCREEN_ON|スクリーンが ON になった。|
|ACTION_TIMEZONE_CHANGED|タイムゾーンの設定が変更された。|
~
*インテントレシーバ [#re0a4277]
外部のイベントに反応するアプリを作成したい時に使用。
http://toru.tea-nifty.com/toru204e/2009/12/post-a4e3.html
~
*インテントフィルタ [#xc9b4ef2]
インテントフィルタは、2方法ある~
・プログラム内にIntent Filter クラスを使って直接記述~
・マニフェストファイル内に intent-filterタグで記述 (一般的)~
priority~
action~
category~
type~
scheme~
authority~
path~
コード内で作成して登録したブロードキャストレシーバの場合、インテントフィルタは、Intent Filter オブジェクトとして直接インスタンス化される。それ以外のっ全てのフィルタは、マニフェストで設定する
[[参考 りょーぺいさんのHP - インテントフィルタのまとめ>http://d.hatena.ne.jp/ryopei/20090826/1251263635]]
http://www.techdoctranslator.com/android/practices/ui_guidelines/activity_task_design
~
**サービス [#id0b8ab8]
サービスもインテントで起動可能
**adb から インテントを飛ばす。 [#j9c7468c]
am start -a android.intent.action.VIEW -d http://localhost/test.jpeg
am start -a android.intent.action.VIEW -d http://abcde.com/test.gif
~
~
着信音選択のインテント~
Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
~
**コマンドラインからインテント [#pd7e9a79]
[[コマンドラインからインテント>http://www.google.co.jp/search?sourceid=chrome&ie=UTF-8&q=%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3%E3%80%80%E3%82%A4%E3%83%B3%E3%83%86%E3%83%B3%E3%83%88]]
~
~
''[[戻る>Android]]''