[Android] Intent:アプリチューザを明示的に表示する

アプリチューザとは、起動したいアプリを選択するリストのことを指します。ここでは、アプリチューザを明示的に表示する方法について説明します。
広 告
目次
前提条件
- 特になし
動作確認端末
- Google Nexus 7 – 5.1.1 – API22(実機)
1. アプリチューザを明示的に表示する

アプリチューザは、暗黙的インテントでブラウザアプリやカメラアプリなどを起動する際に、それに応答するアプリが2つ以上存在した場合に表示されます。ユーザは自分好みのアプリを選択して起動することができます。「常時」ボタンを選択することで、次回以降、選択されたアプリが常に起動するようになります(システム設定から解除することも可能です)。
しかし暗黙的インテントに応答するアプリが2つ以上あり、ユーザが毎回別のアプリを使用する可能性がある場合は、アプリチューザを明示的に表示する必要があります。
アプリチューザを表示するため実装例は以下のとおりです。
アプリチューザを表示する
final Intent target = new Intent(Intent.ACTION_VIEW); if (target.resolveActivity(getPackageManager()) != null) { final Intent chooser = Intent.createChooser(target, "Custom Title"); startActivity(chooser); } else { // 対象アプリが見つからなかった }
アプリチューザを表示するためには、Intent#createChooser()を使用します。第一引数には表示したいアプリが応答するインテントを設定し、第二引数にはチューザのタイトルを設定します。
第一引数のインテントに応答するアプリがあるかを事前に検証するために、Intent#resolveActivity()を使用します。
2. 参考URL
Intents and Intent Filters | Android Developers
http://developer.android.com/intl/ja/guide/components/intents-filters.html#ForceChooser