カテゴリ | 意味 |
---|
CATEGORY_BROWSABLE | リンクで参照されているデータを呼び出すことができるアクティビティ。 例えば、ブラウザで特定のURLをクリックしたら別アプリが起動することが可能 |
CATEGORY_GADGET | ガジェットのホストになっている別のアクティビティを内部に組込み可能なアクティビティ。 |
CATEGORY_HOME | ホームスクリーンを表示するアクティビティで、最初の画面が見えるのはデバイスがオンになったとき、 またはHOME キーが押されたとき。 |
CATEGORY_LAUNCHER | アプリケーションランチャーにリストされるアクティビティ。(タスクの初期アクティビティになれる) |
CATEGORY_PREFERENCE | プリファレンスパネルがターゲットのアクティビティ。 |
参考: Think IT - 第4回:Androidの重要な機能、インテント
Sampleソース付き
参考: 日本Androidの会 - インテントを発行してみよう
Ⅲ.データ †
Ⅳ.タイプ †
Intentで値を引き渡す方法 (拡張インテント) †
-IntentクラスのputExtra()を使用し、様々な引き渡したい情報を付加させる
-putExtra()には2つの引数を渡す。一つはキー。一つは渡したい内容。
-真偽値、数値、文字列、配列。様々な内容を添付可能
String型 | getStringExtra() |
boolean型 | getBooleanExtra() |
int型 | getIntExtra() |
参考: mucchinのAndroid戦記
呼び元でIntentの戻り値を受ける方法 †
呼び出し時にstartActivityではなく、
呼び出し時にstartActivityForResultを用いる
結果は、onActivityResult()を用意して、取得する
様々なIntent連携 †
参考 : 「コードを貼り付けながら。」さんのページ - Intent(インテント)連携をまとめてみる
参考 : んぱかさんのページ
明示的なインテントと暗黙的なインテント †
- 明示的インテント : アクティビティを直接指定起動
- 暗黙的インテント : インテントのパラメータ起動。ゆるい連携。
明示的インテント †
コンストラクタIntentやsetComponentなどによって明示的に指定。相手先が明確。
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://www.taosoftware.co.jp/blog/2009/03/alarmmanager_5.html
ブロードキャストの多くが元々はシステム コード。以下のようなモノを検知する。
・時刻が変更された
・端末が起動された
・アプリのインストール
・バッテリー残量低下
・ユーザーが言語設定を変更
・写真が撮影された
・タイム ゾーンが変更された
ACTION_BATTERY_LOW | バッテリー残量が少ないときの警告。 |
ACTION_HEADSET_PLUG | ヘッドセットがデバイスに取り付けられた、またはそこから取り外された。 |
ACTION_SCREEN_ON | スクリーンが ON になった。 |
ACTION_TIMEZONE_CHANGED | タイムゾーンの設定が変更された。 |
インテントレシーバ †
外部のイベントに反応するアプリを作成したい時に使用。
http://toru.tea-nifty.com/toru204e/2009/12/post-a4e3.html
インテントフィルタ †
インテントフィルタは、2方法ある
・プログラム内にIntent Filter クラスを使って直接記述
・マニフェストファイル内に intent-filterタグで記述 (一般的)
priority
action
category
type
scheme
authority
path
コード内で作成して登録したブロードキャストレシーバの場合、インテントフィルタは、Intent Filter オブジェクトとして直接インスタンス化される。それ以外のっ全てのフィルタは、マニフェストで設定する
参考 りょーぺいさんのHP - インテントフィルタのまとめ
http://www.techdoctranslator.com/android/practices/ui_guidelines/activity_task_design
サービス †
サービスもインテントで起動可能
adb から インテントを飛ばす。 †
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);
コマンドラインからインテント †
コマンドラインからインテント
戻る