android 在一个应用中启动另一个应用
在程序开发过程当中,常遇到需要启动另一个应用程序的情况,比如在点击软件的一个按钮可以打开地图软件。
如果既有包名又有主类的名字,那就好 办了,
直接像下面就行:
public static void openCLD(String packageName,Context context) {PackageManager packageManager = context.getPackageManager();PackageInfo pi = null;try {pi = packageManager.getPackageInfo("cld.navi.mainframe", 0);} catch (NameNotFoundException e) {}Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);resolveIntent.setPackage(pi.packageName);List<ResolveInfo> apps = packageManager.queryIntentActivities(resolveIntent, 0);ResolveInfo ri = apps.iterator().next();if (ri != null ) {String className = ri.activityInfo.name;Intent intent = new Intent(Intent.ACTION_MAIN);intent.addCategory(Intent.CATEGORY_LAUNCHER);ComponentName cn = new ComponentName(packageName, className);intent.setComponent(cn);context.startActivity(intent);}}