2011年1月16日日曜日

インテントを受け取れるアクティビティのリストを取得する (Android)

PackageManager の queryIntentActivities(Intent intent, int flags) メソッドで取得できる。

PackageManagerのインスタンスはActivityからgetPackageManager()メソッドで取得できる。

受け取って欲しいインテントを intentパラメータに指定する。flagsは

MATCH_DEFAULT_ONLY
GET_INTENT_FILTERS
GET_RESOLVED_FILTER

を指定できるが、フラグを設定しなくても(0を指定)動作するようだ。android.intent.category.DEFAULT のインテントを探すなら MATCH_DEFAULT_ONLY を指定する。

参考ページ

コードを貼り付けながら。「アプリケーションリストを取得する」

Y.A.M の 雑記帳「Android 特定の Intent (Action) を処理できる Activity (アプリ)の一覧を取得」