単なるIntentFilterの使用方法ではなく、IntentFilterの存在意義、つまりなぜグーグルはAndroidにIntentFilterという仕組みを織り込まなければならなかったのか、ということについての回答を頂きたいです。
もちろん推測で結構です。
IntentFilterは、下記2つの機能を実現するために用いられます。
1.Intentに含まれる「何を行うか」という情報から、Intentを受け取った
アプリが表示する画面を決定するため。
2.暗黙的インテントから、システムが起動するべきアプリを決定するため。
1については、例えばメール本文に記載されているURLのリンクから、
ブラウザアプリを起動してページを表示したい場合。
Intentに「このアドレスのページを表示する」という情報+URL情報が含まれて
ブラウザアプリに渡される。
ブラウザアプリは、IntentFilterの「このアドレスのページを表示する」
に対応した画面「Webページ表示」画面で起動し、渡されたURLにアクセスします。
同じURL指定でブラウザを起動する場合でも、やりたいことが「お気に入りに登録」
の場合もありえます。
この場合はIntentに「お気に入りに登録」+URL情報のIntentが渡され、
ブラウザはIntentFilterから「お気に入りに登録」に対応した画面が
お気に入り登録画面であることを判断し、直接お気に入り登録画面で起動することに
なります。
この仕組みがあることで、複数のアプリがスムーズに連携して一連の機能を提供
することができます。
2については、GoogleAndroidでは、ブラウザアプリやメーラアプリを
特定のものではなく、入れ替え可能なものとしています。
そうなると、たとえばブラウザでWebページを表示したいアプリが、ブラウザアプリを
明示できない場合が考えられます。
こうしたことを解決するために、アプリを判断するのに十分な情報だけを
Intentに含め、システム側でその情報をもとに起動するアプリを決定するための
仕組みが暗黙のインテントです。
システムは、起動するアプリを決定する際に各アプリのintentFilter
を参考にします。
これにより実現したい機能としては、Windowsでのデフォルトブラウザの設定など
と考えれば分かりやすいでしょうか?
※仕組みとしては、
「システムに設定する」/「各アプリが設定を持っている情報をシステムが参照する」
という違いはありますが。