Ejemplo n.º 1
0
		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;
		}