一、通過包名啟動
如果你不知道那個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號