Android How to - Start Activity from Apk








Question

We would like to know how to start Activity from Apk.

Answer

/*from www.ja v a  2  s  . com*/
import java.util.List;

import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ResolveInfo;

public class Main {

  public static void startApkActivity(final Context ctx, String packageName) {
    PackageManager pm = ctx.getPackageManager();
    PackageInfo pi;
    try {
      pi = pm.getPackageInfo(packageName, 0);
      Intent intent = new Intent(Intent.ACTION_MAIN, null);
      intent.addCategory(Intent.CATEGORY_LAUNCHER);
      intent.setPackage(pi.packageName);

      List<ResolveInfo> apps = pm.queryIntentActivities(intent, 0);

      ResolveInfo ri = apps.iterator().next();
      if (ri != null) {
        String className = ri.activityInfo.name;
        intent.setComponent(new ComponentName(packageName, className));
        ctx.startActivity(intent);
      }
    } catch (NameNotFoundException e) {
      e.printStackTrace();
    }
  }
}