How to launch an Activity from another Application in Android How to launch an Activity from another Application in Android android android

How to launch an Activity from another Application in Android


If you don't know the main activity, then the package name can be used to launch the application.

Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.package.address");if (launchIntent != null) {     startActivity(launchIntent);//null pointer check in case package name was not found}


I know this has been answered but here is how I implemented something similar:

Intent intent = getPackageManager().getLaunchIntentForPackage("com.package.name");if (intent != null) {    // We found the activity now start the activity    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);    startActivity(intent);} else {    // Bring user to the market or let them choose an app?    intent = new Intent(Intent.ACTION_VIEW);    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);    intent.setData(Uri.parse("market://details?id=" + "com.package.name"));    startActivity(intent);}

Even better, here is the method:

public void startNewActivity(Context context, String packageName) {    Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName);    if (intent != null) {        // We found the activity now start the activity        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        context.startActivity(intent);    } else {        // Bring user to the market or let them choose an app?        intent = new Intent(Intent.ACTION_VIEW);        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        intent.setData(Uri.parse("market://details?id=" + packageName));        context.startActivity(intent);    }}

Removed duplicate code:

public void startNewActivity(Context context, String packageName) {    Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName);    if (intent == null) {        // Bring user to the market or let them choose an app?        intent = new Intent(Intent.ACTION_VIEW);        intent.setData(Uri.parse("market://details?id=" + packageName));    }    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);    context.startActivity(intent);}


I found the solution. In the manifest file of the application I found the package name: com.package.address and the name of the main activity which I want to launch: MainActivityThe following code starts this application:

Intent intent = new Intent(Intent.ACTION_MAIN);intent.setComponent(new ComponentName("com.package.address","com.package.address.MainActivity"));startActivity(intent);