人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

[Google Android] AndroidにはIntentFilterという仕組みがありますが、これは何のためにあるのでしょうか。
単なるIntentFilterの使用方法ではなく、IntentFilterの存在意義、つまりなぜグーグルはAndroidにIntentFilterという仕組みを織り込まなければならなかったのか、ということについての回答を頂きたいです。
もちろん推測で結構です。

●質問者: room661
●カテゴリ:コンピュータ 家電・AV機器
✍キーワード:Android Google グーグル 存在
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● katameneko
●60ポイント

IntentFilterは、下記2つの機能を実現するために用いられます。


1.Intentに含まれる「何を行うか」という情報から、Intentを受け取った

アプリが表示する画面を決定するため。


2.暗黙的インテントから、システムが起動するべきアプリを決定するため。


1については、例えばメール本文に記載されているURLのリンクから、

ブラウザアプリを起動してページを表示したい場合。


Intentに「このアドレスのページを表示する」という情報+URL情報が含まれて

ブラウザアプリに渡される。


ブラウザアプリは、IntentFilterの「このアドレスのページを表示する」

に対応した画面「Webページ表示」画面で起動し、渡されたURLにアクセスします。


同じURL指定でブラウザを起動する場合でも、やりたいことが「お気に入りに登録」

の場合もありえます。


この場合はIntentに「お気に入りに登録」+URL情報のIntentが渡され、

ブラウザはIntentFilterから「お気に入りに登録」に対応した画面が

お気に入り登録画面であることを判断し、直接お気に入り登録画面で起動することに

なります。


この仕組みがあることで、複数のアプリがスムーズに連携して一連の機能を提供

することができます。



2については、GoogleAndroidでは、ブラウザアプリやメーラアプリを

特定のものではなく、入れ替え可能なものとしています。


そうなると、たとえばブラウザでWebページを表示したいアプリが、ブラウザアプリを

明示できない場合が考えられます。


こうしたことを解決するために、アプリを判断するのに十分な情報だけを

Intentに含め、システム側でその情報をもとに起動するアプリを決定するための

仕組みが暗黙のインテントです。

システムは、起動するアプリを決定する際に各アプリのintentFilter

を参考にします。


これにより実現したい機能としては、Windowsでのデフォルトブラウザの設定など

と考えれば分かりやすいでしょうか?

※仕組みとしては、

「システムに設定する」/「各アプリが設定を持っている情報をシステムが参照する」

という違いはありますが。

◎質問者からの返答

id:katameneko さん、丁寧なご回答ありがとうございます。

頂いた回答を元にして、すこし考えてみます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ