一、通过包名启动
如果你不知道那个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);
    }

 

posted on 2025-06-10 14:33  邢帅杰  阅读(143)  评论(0)    收藏  举报