一、通过包名启动
如果你不知道那个APP的Activity,但是知道包名(package name),那么可以使用如下的方法:
Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.package.address");
startActivity(LaunchIntent);
二、通过package/activity启动
如果APP之间有合作关系,可以获得合作APP的清单文件(manifest),那么可以从该文件中获知package/activity,可使用如下的方法来启动该APP特定活动界面:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setComponent(new ComponentName("com.package.address","com.package.address.MainActivity"));
startActivity(intent);
三、传递参数
如果要在启动APP时传递参数,可以在意图(Intent)中设置:
intent.putExtra("firstKeyName","FirstKeyValue");
intent.putExtra("secondKeyName","SecondKeyValue");
/** * 打开第三方app并传入参数 * */ public static void StartThirdAPKHaveExtra(String apkName, HashMap<String,String> param) throws Exception { final Intent intent = getPackageManager().getLaunchIntentForPackage(apkName); if (intent == null) { throw new Exception("无法启动应用【" + apkName + "】:包名无效"); } intent.setAction("android.intent.action.VIEW"); if (param != null && param.size() > 0) { for (String key : param.keySet()) { intent.putExtra(key, param.get(key)); } } startActivity(intent); }
浙公网安备 33010602011771号