Androidアプリの開発で、パッケージ名およびActivity名が分かっているアプリを、自分のアプリから起動したい時がある。たとえばプリインストールのGoogle製アプリとか。 この場合も、自パッケージ内の明示的インテントと同様に起動することができる。具体的には以下みたいにする。 Intent i = new Intent(); i.setAction(Intent.ACTION_MAIN); i.setClassName(“com.example.external.package”, “com.example.external.package.SomeActivity”); //i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //外部Activityを自分のActivityスタックとは別に立てたいとき。 startActivity(i); 注意点として、setClassName(String packageName, String ActivityName)するときに、ActivityName側もフルパッケージ名で指定する必要があること。これをしないとClassNotFoundExceptionになる。 あと、setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)しないと、例えば起動したアプリをHOMEボタンで終了した後にもう一回自分のアプリを立ち上げた時、自分のパッケージから起動したSomeActivityの方の画面が出てよくわからない事になる。これを避けるにはIntent.FLAG_ACTIVITY_NEW_TASKフラグを指定した状態でstartActivity()する。 このへんはTASKについて整理する必要がありそうだけど、別の機会にします。