そのページの記述は何かおかしいですね。
setActionはアクションを指定するもので、コンストラクターの引数ですでに指定済みのところをさらに指定したら、上書きすることになってしまうと思うのですけどね。そのページ通りのコードで実行したなら、ログの出力は
I/ActivityManager( 757): START u0 {act=android.intent.category.LAUNCHER flg=0x10200000 cmp=com.google.android.apps.plus/.phone.HomeActivity} from pid 20121
のように、actがandroid.intent.category.LAUNCHERになってしまうはず。前節にあるようなログ出力を再現するならば、カテゴリーは
Java
1intent.addCategory("android.intent.category.LAUNCHER"); // cat
2または
3intent.addCategory(Intent.CATEGORY_LAUNCHER); // cat
としなければならないと思うのだけど(Intent.CATEGORY_LAUNCHERの実体は"android.intent.category.LAUNCHER"というStringなので、どちらで指定しても同じ)。まあ、それは置いておいて。
質問の主題について、これは暗黙的インテントと呼ばれる機能です。setAction(コンストラクターの引数への指定でも同じ)やaddCategoryなどのメソッドで設定をしてインテントを飛ばすと、その条件に合致するアクティビティが開きます。合致するものが複数あれば、どれで開くか問い合わせが出ます。普段の端末操作で、ファイルマネージャーで画像ファイルを選ぶと、どのビューワーで開くかを問う表示を見たことがあると思いますが、あのような感じになります。
例えば、
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(intent);
だけで実行すると、「ランチャーに登録されているアプリのトップアクティビティ」が全部対象になるので、それらが全て含まれた問い合わせが出てきます。
自分で作成した他アプリをパッケージ名で指定する場合、setClassNameで指定しさえすればこの条件のみで重複するものは存在しないはずですから、これだけでも目的のアクティビティは開けるはずです(存在しないと落ちるけど)。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。