public override android.content.Intent getLaunchIntentForPackage(string packageName ) { // First see if the package has an INFO activity; the existence of // such an activity is implied to be the desired front-door for the // overall package (such as if it has multiple launcher entries). android.content.Intent intentToResolve = new android.content.Intent(android.content.Intent .ACTION_MAIN); intentToResolve.addCategory(android.content.Intent.CATEGORY_INFO); intentToResolve.setPackage(packageName); java.util.List<android.content.pm.ResolveInfo> ris = queryIntentActivities(intentToResolve , 0); // Otherwise, try to find a main launcher activity. if (ris == null || ris.size() <= 0) { // reuse the intent instance intentToResolve.removeCategory(android.content.Intent.CATEGORY_INFO); intentToResolve.addCategory(android.content.Intent.CATEGORY_LAUNCHER); intentToResolve.setPackage(packageName); ris = queryIntentActivities(intentToResolve, 0); } if (ris == null || ris.size() <= 0) { return null; } android.content.Intent intent = new android.content.Intent(intentToResolve); intent.setFlags(android.content.Intent.FLAG_ACTIVITY_NEW_TASK); intent.setClassName(ris.get(0).activityInfo.packageName, ris.get(0).activityInfo. name); return intent; }